我有一个正在运行的AsyncTask,并且在此线程中,我启动了一个runOnUiThread来操纵我的视图。如果关闭AsyncTask,则在关闭AsyncTask之后,runOnUiThread仍将运行1次。如何关闭runOnUiThread?谢谢!
@Override
protected String doInBackground(String... params) {
while(running.get()) {
// Background thread sleeps
try {
Thread.sleep(produceRadwaste_countdown * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// UI thread touching some view elements
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
radwasteTon.incrementStack();
}
});
// Delete thread if player is game over
if(GameLogic.isGameOver()) {
clearThreads();
}
}
return "Running";
}
public void clearThreads() {
running.set(false);
this.cancel(true);
}
我可以提出不同的解决方案吗?
在AsyncTask中实现onProgressUpdate(Params ...)方法。然后,您可以从doInBackground(Params ...)调用publishProgess;
onProgressUpdate(Params ...)将在ui线程上运行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句