我有一个AsyntTask
开始onCreate
并无限循环,更新 UI 元素。
更新以这种方式完成(Async 扩展类的简化表示,我们称之为asyncExtender().execute()
):
doInBackground(){
while (!isCancelled()) {
Thread.sleep(2000);
publishProgress(someValue);
}
}
protected void onProgressUpdate() {
super.onProgressUpdate(values);
// UI update here, e.g. TextView.setText
}
另一个活动开始了,我们称之为SecondActivity。SecondActivity 利用操作栏中的分层后退按钮返回到上一个活动 ( NavUtils.navigateUpFromSameTask(this)
in onOptionsItemSelected
)。
问题是,当我在 SecondActivity的操作栏中点击后退按钮时,AsyncTask 似乎不再在第一个活动中运行(UI 不会每 2 秒更新一次)。另一方面,如果我使用硬件“后退”按钮,它工作正常- AsyncTask 继续运行。
为什么行为差异以及如何解决?