从应用程序屏幕打开应用程序和最近使用的应用程序列表有什么区别? (机器人

任何人都可以告诉我,从应用程序屏幕打开应用程序和从最近使用的应用程序列表打开应用程序之间的区别是什么,当您长按主页按钮时弹出?

我甚至不知道最近使用的列表存在,直到一个朋友设法通过从那里启动它来破坏我的应用程序.他尝试了两次同样的力量戒烟,但是当他从应用程序屏幕上启动它时,它打开了.

错误日志告诉我,在我的ListView的ArrayAdaptor上的getCount方法中发生了一个nullPointerException.

无论如何,我只是想知道是否有区别,我需要知道和适应我的代码来处理?

解决方法

AFAIK,如果您的应用程序完全关闭,从应用程序屏幕启动,最近使用的应用程序列表应该没有什么不同,刷新启动应用程序并打开应用程序的MainActivity(通过将应用程序的MainActivity堆叠到新创建的任务中)

但是,由于Android是多任务操作系统,您的应用程序可以在待机模式下进入后台,即打开应用程序,然后短按主屏幕按钮,这与按下按钮不同.如果您没有在应用程序中按下这些按键,请按返回按钮多次,将所有活动从活动堆栈中移除,并最终杀死您的应用程序,而按住主页按钮将使系统的HomeActivity进入前台,从而翻转应用程序(AKA.任务与活动堆栈)到后台.

事情在这里变得更加有趣,取决于您在AndroidManifest.xml中配置您的活动的android:launchMode的价值,如果您使用standard或singletop:
1.从最近使用的应用程序列表中启动应用程序始终将待机活动返回到前台,即重新排序活动堆栈.
2.从应用程序屏幕启动应用程序将创建一个新的MainActivity实例并将其打开,即将新创建的MainActivity推入活动堆栈,因此现在您的应用程序的活动堆栈中有两个实例

如果您使用singleTask或singleInstance:
2.从应用程序屏幕启动应用程序将使用您的应用程序活动堆栈中的备用MainActivity(如果存在)并重新打开它,即重新排序活动堆栈.

结帐Tasks and Back Stack了解不同的配置可能会如何影响应用程序的活动堆栈行为.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...