我在我的应用程序中使用了一堆异步任务,我想在onPostExecute中运行Ui操作。 我通常在异步任务运行时显示一个微调器,当它完成时我想删除微调器并更改Ui或启动一个新片段。
当异步任务完成时应用程序不在前台时,我遇到了问题。我一直在通过检查片段是否暂停来处理错误,如果它已暂停,我有一个布尔值isPaused,我检查onResume以运行onPostExecute代码,但必须有一个更简单的方法。
onPostExecute中的
if (!isPaused) {
getFragmentManager().popBackStackImmediate();
} else {
wasPaused= true;
}
然后onResume
@Override
public void onResume() {
super.onResume();
isPaused = false;
if (wasPaused) {
getFragmentManager().popBackStack();
wasPaused= false;
}
}
答案 0 :(得分:0)
当活动暂停(onPause()
被调用)时,您无法更新后台的UI或从后台活动启动片段。你所做的是正确的事。