我是Android界的全新人物需要帮助如何创建&添加一个用于停止&每10Sec重启一次Asynctask。而它的活跃(在屏幕触摸事件之前)。
我的AsyncTask用于每2秒更改一次屏幕背景颜色。如下。我正在使用Button.onClick
来启动AsyncTask&任何屏幕触摸事件以后都会阻止它。
public class MyAsynTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
Runasync = true;
while (Runasync) {
if (isCancelled()) {
break;
}
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
publishProgress();
}
return null;
}
@Override
protected void onProgressUpdate(Void... values) {
ChangeBackgroudColor(); //Calling Method to change the background color.
}
}
答案 0 :(得分:0)
您可以创建一个Timer & TimerTask,间隔为10秒。
在主线程中创建如下所示的Handler
。
在处理消息中实现START_ASYNC_TASK消息的功能Switch - Case并取消现有的Asynctask并在此处启动新的asynctask。
在TimerTask中使用mHandler.post()
方法将消息发布到UI线程。
在您的活动覆盖中