我需要一个线程在 30 秒后重复从 Web 服务加载数据。 我想停止并启动线程 onResume 和 onPause,以便它在屏幕处于 Activity 状态时运行,并在 Activity 暂停时禁用它。恢复时重新启动。
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
dataIfInternet(refreshTop);
}
}, 30000);
Activity 暂停时如何停止它。
最佳答案
您无法暂停处理程序,因此您需要在onPause
中取消它,然后在onResume
中再次发布
所以你可能想要这样的东西:
private Handler myHandler = new Handler();
在你的onResume()
Runnable myRunnable = new Runnable()
{
@Override
public void run()
{
dataIfInternet(refreshTop);
}
};
myHandler.postDelayed(myRunnable, 30000);
并在您的onPause()
// Cancel the runnable
myHandler.removeCallbacks(myRunnable);
希望这能解决您的问题
关于java - Android 在特定时间后启动/停止重复线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39635674/