我的Android应用程序有一个主要活动,用户点击一个按钮,它会启动一个带有微调器的“加载活动”,它会在加载完成后启动结果活动。
加载活动只是一个onCreate函数,它生成一个从Web获取信息的新线程。
通常,在使用我的应用程序一段时间后,加载活动将是从主屏幕恢复我的应用程序时显示的活动。活动永远运行,旋转器旋转一整天。我唯一能做的就是按主页键关闭应用程序(问题仍然存在,直到强行关闭应用程序)。你怎么防止这种情况?我希望我的主要活动能够在这些情况下开始。
我尝试添加以下覆盖功能,但它不起作用:
@Override
public void onResume() {
super.onResume();
finish();
}
答案 0 :(得分:1)
尝试将finish()
放入您不想重新启动的活动的onPause()
中。
答案 1 :(得分:1)
答案 2 :(得分:0)
您是否考虑过使用LoaderManager
和LoaderCallbacks<>
来实现异步加载?他们在Honeycomb中首先将这个添加到Android中,专门针对您正在尝试完成的事情。
http://developer.android.com/reference/android/app/LoaderManager.html
如果没有更多具体细节,很难告诉你解决这个问题的最佳方法,但这可能会让你完成一个完整的单独活动,只是为了在你加载东西时展示一个微调器。
答案 3 :(得分:0)
看起来像一个糟糕的程序结构,使用像这样的完成只会让它变得更糟。似乎你的程序在某些时候挂起,所以你应该专注于修复它而不是乱砍你的方式。检查你的回调是否被调用,检查你是否没有创建比你需要的更多的加载过程,检查它们是否没有干扰等。为了防止你的程序在加载后加载东西,你可以简单地设置一个(静态) )变量并在开始加载过程之前检查它。
答案 4 :(得分:0)
我通过一个名为“determineAction()”的方法控制我的应用程序的生命周期,该方法检查各种逻辑状态。在启动Activity上,如果它有效,则继续加载,否则重定向到其他活动。因此,无需停止或暂停活动,只需将其重新路由到您想要的位置即可。