当您从主屏幕重新启动应用程序时,如何阻止某个活动被恢复?
我的Android应用程序有一个主要的活动,用户点击一个按钮,开始一个“加载活动”与微调,当完成加载后开始结果活动。当您从主屏幕重新启动应用程序时,如何阻止某个活动被恢复?
加载活动只是一个onCreate函数,它产生一个从Web获取信息的新线程。
经常在使用我的应用程序一段时间后,加载活动将是从主屏幕恢复我的应用程序时显示的活动。活动永远持续下去,微调整个时间。我唯一能做的就是按home键关闭应用程序(问题依然存在,直到关闭应用程序为止)。你如何防止这一点?我希望我的主要活动在这些情况下开始。
我尝试添加以下重写功能,但它没有工作:
@Override
public void onResume() {
super.onResume();
finish();
}
你有没有考虑过使用LoaderManager
和LoaderCallbacks<>
实现你异步加载?他们从Honeycomb开始,将其添加到Android中,专门用于您想要完成的任务。
http://developer.android.com/reference/android/app/LoaderManager.html
没有更多的细节,这是很难告诉你接近这一目标的最佳途径,但是这可能让你出具有完整而独立的活动只是显示一个微调,而你加载的东西的。
尝试将finish()
放入您不希望重新启动的活动的onPause()
中。
看起来像一个糟糕的程序结构,使用这样的结束只会使情况变得更糟。看起来你的程序在特定时间挂起,所以你应该专注于修复这个问题,而不是绕开你的方式。检查你的回调是否被调用,检查你是否没有创建比你需要的更多的加载过程,检查它们是否没有干扰等。为了防止你的程序在加载之后加载,你可以简单地设置一个(静态)变量并在开始加载过程之前检查它。
我通过一个名为“determineAction()”的方法来控制我的应用程序的生命周期,该方法检查各种逻辑状态。在启动活动中,如果它有效,则继续加载,否则它将重定向到其他活动。因此,无需停止或暂停活动,只需将其重新路由到您想要的位置即可。
将“finish()”放在“onResume()”中会在每次启动时关闭您的应用程序。 – 2012-02-17 22:58:01