我甚至不知道最近使用的列表存在,直到一个朋友设法通过从那里启动它来破坏我的应用程序.他尝试了两次同样的力量戒烟,但是当他从应用程序屏幕上启动它时,它打开了.@H_404_3@
错误日志告诉我,在我的ListView的ArrayAdaptor上的getCount方法中发生了一个nullPointerException.@H_404_3@
解决方法
但是,由于Android是多任务操作系统,您的应用程序可以在待机模式下进入后台,即打开应用程序,然后短按主屏幕按钮,这与按下按钮不同.如果您没有在应用程序中按下这些按键,请按返回按钮多次,将所有活动从活动堆栈中移除,并最终杀死您的应用程序,而按住主页按钮将使系统的HomeActivity进入前台,从而翻转应用程序(AKA.任务与活动堆栈)到后台.@H_404_3@
事情在这里变得更加有趣,取决于您在AndroidManifest.xml中配置您的活动的android:launchMode的价值,如果您使用standard或singleTop:
1.从最近使用的应用程序列表中启动应用程序始终将待机活动返回到前台,即重新排序活动堆栈.
2.从应用程序屏幕启动应用程序将创建一个新的MainActivity实例并将其打开,即将新创建的MainActivity推入活动堆栈,因此现在您的应用程序的活动堆栈中有两个实例@H_404_3@
如果您使用singleTask或singleInstance:
2.从应用程序屏幕启动应用程序将使用您的应用程序活动堆栈中的备用MainActivity(如果存在)并重新打开它,即重新排序活动堆栈.@H_404_3@
结帐Tasks and Back Stack了解不同的配置可能会如何影响应用程序的活动堆栈行为.@H_404_3@