[英]Press back key can't finish my app. But removing it from recent apps list can
我正在使用android:launchMode =“ singleTask”创建一个Activity。 在应用程序中,还有一个未在活动中声明的类,该类使自己保持静态的最终实例,并在活动中显示一些日志。 当我尝试按返回键完成活动时。 日志显示活动被破坏,正如我所说
@Override
public void onDestroy() {
super.onDestroy();
Log.d("I am destroyed", ".");
}
活动中的代码。 但是,当我再次启动该应用程序时,发现活动仍然与我离开它时相同。 然后,我按返回键,然后将其从最近的应用程序列表中手动删除。 并再次运行该应用程序。 这次,该应用显示为应有的状态。
按返回键完成应用程序并将其从最近的应用程序列表中删除有什么区别? 如果我想像普通应用一样完成应用程序,该怎么办?
每个android应用程序都有其自己的进程 ,在该进程中,可以再进行多次活动,而无需结束该进程。
当一个Activity结束时,静态变量不会超出范围,而只会在该过程最终结束时才超出范围。
您可以通过调用System.exit(0)
结束整个过程,但是通常不鼓励这种事情,并且更好的解决方案是在销毁活动时重新初始化相关值。
编辑:有关关闭Android应用程序的更多详细信息,请参见这篇文章:
向应用程序“返回”并不意味着它已完成。 Android会决定何时结束(如果有的话)。 这是设计使然,旨在提供应用程序的快速启动,并且运行良好。 您没有显示任何代码,所以这只是一个猜测,但是您可能在onCreate()中做太多了,而忽略了onResume()。 看一下Android活动生命周期:
http://developer.android.com/reference/android/app/Activity.html#Lifecycle
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.