我用android创建一个Activity:launchMode =“singleTask”。在应用程序中,还有另一个类,未在活动中声明,它保持自己的静态最终实例和一些要在活动中显示的日志。 当我尝试按后退键完成活动时。日志显示活动被销毁,因为我把
@Override
public void onDestroy() {
super.onDestroy();
Log.d("I am destroyed", ".");
}
活动中的代码。 但是,当我再次启动应用程序时,我发现活动仍然与我离开时相同。 然后,我按后退键,并手动将其从最近的应用列表中删除。然后再次运行应用程序。这一次,应用程序显示应该是。
按后退键完成应用并将其移除到最近的应用列表中有什么不同?如果我想像普通应用那样完成应用程序,该怎么办?
答案 0 :(得分:0)
每个Android应用程序都拥有它自己的process,并且在该过程中,还有一个活动可以多次启动和完成,而不会使进程结束。
当Activity结束时,静态变量不会超出范围,但仅在进程最终结束时才会超出范围。
您可以通过调用System.exit(0)
来结束整个过程,但通常不鼓励这种事情,更好的解决方案是在活动被销毁时重新初始化相关值。
编辑:有关关闭Android应用程序的详细信息,请参阅此帖子:
答案 1 :(得分:0)
“退出”你的应用程序并不意味着它已经完成。 Android决定何时完成,如果有的话。这是设计,旨在提供快速启动的应用程序,并且工作得非常好。你没有显示任何代码所以它只是一个猜测,但你可能在onCreate()中做了太多而忽略了onResume()。看一下Android活动生命周期:
http://developer.android.com/reference/android/app/Activity.html#Lifecycle