繁体   English   中英

一段时间后在android中执行线程的最佳方法

[英]Best way to execute a thread after a period of time in android

我的应用程序中有一项服务,该服务将可运行文件(在另一个Java文件中)放入线程中并启动它。 一次可以正常工作,但是由于特定时期我希望它可以重复。 我需要一个好的方法来解决这个问题。 我之所以不使用其他问题的答案,是因为我不希望它重复无穷大,也不知道它将重复执行任务多少次。 由于在UI中单击按钮,它只会停止。

我当时正在考虑使用带有睡眠和if语句的循环。 但是我认为这对我的应用程序来说确实是糟糕的设计。 有没有做这种事情的标准方法?

谢谢...

您可以使用某种类似于计时器的处理程序,但我认为这对您的情况更好。

您可以这样初始化它:

Handler delayhandler = new Handler();

设置触发时间(以毫秒为单位):

delayhandler.postDelayed(mUpdateTimeTask, 500);

它称为:

private Runnable mUpdateTimeTask = new Runnable()
{   public void run()
    {   // Todo

        // This line is necessary for the next call
        delayhandler.postDelayed(this, 100);
    }
}

您还可以使用以下方法删除下一个通话:

delayhandler.removeCallbacks(mUpdateTimeTask);

使用TimerTask并使其执行您的线程/方法。

http://android.okhelp.cz/timer-simple-timertask-java-android-example/

http://developer.android.com/reference/java/util/TimerTask.html-您可以使用Cancel()方法停止TimerTask的执行。

使用计时器,它将在给定的时间段后运行线程,而要停止时,只需停止计时器或将其设置为无限时间段即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM