android - 如何启动/停止Runnable/Handler?

标签 android handler runnable

我正在尝试维护 Web 服务和 Android 应用程序之间的数据库同步。 下面的代码可以正常工作,但我遇到了一些问题:

  • 每次我进入 App 的主页时,都会启动一个新的无限进程。
  • 过程永无止境

任何人都可以按照我的意愿解释如何开始和停止这个过程吗?
我希望此过程每 5 分钟运行一次,但只在应用程序打开时运行一次。

public void onCreate(Bundle savedInstanceState) {   
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    final Handler handler = new Handler();
    final Runnable r = new Runnable() {
        public void run() {
            // DO WORK
            Mantenimiento();
            // Call function.
            handler.postDelayed(this, 1000000);
        }
    };
    r.run();
}

最佳答案

要么使用 TimerTask:

http://thedevelopersinfo.wordpress.com/2009/10/18/scheduling-a-timer-task-to-run-repeatedly/ http://android.okhelp.cz/timer-simple-timertask-java-android-example/

可以获取 bool 值并在 bool 值为真时运行循环并让其他线程休眠,而在离开应用程序时使 bool 值为假。

关于android - 如何启动/停止Runnable/Handler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10601145/

相关文章:

java - 可运行的计数器 'local variables referenced from an inner class must be final or effectively final'

具有网络负载和最短启动显示时间的 Android 启动画面

java - android4.4设备恢复出厂设置后,系统app收不到BOOT_COMPLETED广播

android - Android 中的 PDF 阅读器

android - 如何从另一个线程做 toast (没有 runOnUiThread)

C#异常处理范围

java - 如何在for循环中停止handler.postDelayed?

android - 谷歌地图在兄弟动画后被拉伸(stretch)而不是调整大小

android - Ionic2: Http 发送 {"isTrusted":true} - 与其他可观察对象冲突?

android - Timertask 或 Handler