我正在使用LoaderManager来获取一些数据,当它完成时,应该显示一个子片段.在某些情况下,当活动已处于暂停状态且无法执行片段事务时,会发生这种情况.
有没有办法获得活动的当前状态(似乎有一个mResume标志)?或者我必须维护自己的布尔值?
最佳答案
在Activity source code中快速查看表明Activity类确实跟踪成员mResumed的恢复状态.但由于mResume不是公共的并且isResumed()被隐藏,我们不能使用它们.
您可以使用简单的解决方案为您提供所有课程的信息.只需创建一个存储状态的基本Activity类.例如:
public class ActivityBase extends Activity {
private boolean mIsResumed = false;
@Override
public void onResume() {
super.onResume()
mIsResumed = true;
}
@Override
public void onPaused() {
super.onPaused()
mIsResumed = false;
}
public boolean isResumed() {
return mIsResumed
}
}
只需在课堂上扩展此课程:
public class MyActivity extends ActivityBase {
private void onLoadDone() {
if (isResumed()) {
// Show the fragment
}
}
}
相关文章
转载注明原文:android – 获取活动状态(暂停/恢复) - 代码日志