我启动 AsyncTask
并将 Context
放入任务的构造函数中。
On onPostExecute
我想知道我的 Activity 现在是否处于 Activity 状态并且没有重新创建。怎么做比较好?
为此我可以:
在
onCreate
Activity中创建randomNumber,然后放入Application
类;onPause/onDestroy 将 randomNumber 设置为 0,并在
onResume
中恢复 randomNumber;在
onPreExecute()
中获取随机数并在onPostExecute
中将随机数与应用程序随机数进行比较。
也许我可以使用 Context 来做出决定......?
最佳答案
有很多方法可以检查 Activity 是否仍然存在。
我通常创建一个具有以下结构的SkeletonActivity
:
public class SkeletonActivity extends FragmentActivity {
private boolean paused = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
paused = false;
}
@Override
public void onPause() {
super.onPause();
paused = true;
}
@Override
public void onResume() {
super.onResume();
paused = false;
}
@Override
public void onStart() {
super.onStart();
paused = false;
}
public boolean isPaused() {
return paused;
}
}
现在让您的所有 Activity 扩展此 SkeletonActivity
。最后更改此基类以根据需要更改暂停标志(例如在 onDestroy()
另一种方法是在您的 SkeletonActivity
中有一个 Context 实例:
public class SkeletonActivity extends FragmentActivity {
private Context mContext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = this;
}
@Override
protected void onDestroy() {
mContext = null;
super.onDestroy();
}
public boolean isPaused() {
return mContext==null;
}
}
关于android - 如何在 onPostExecute 中确定 Activity 现在没有暂停或销毁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10685460/