Ⅰ [android][App不显示在最近使用过的应用程序列表中]
为什么想要App不显示在最近使用过的应用程序列表中?我们知道如果在最近使用过的应用程序列表中将APP划掉,那么这个APP就会被销毁。为了延长APP常驻时间,就希望隐藏APP,不让用户在最近使用过的应用程序列表中将APP销毁。但是这只是一个小手段,用户还是可以到系统设置的应用中销毁APP,不要妄想通过这个方法来保活APP.
实现上面的内容只需要在AndroidManifest中的Activity标签中添加android:excludeFromRecents="true"。
任务是否会在最近使用的应用程序的列表("最近的应用程序")中显示。也就是,当这个活动是根活动的一个新任务,这个属性决定了任务应不应该出现在列表中最近的应用程序。设置"true"如果这个任务应该被排除在名单,设置"false"如果它应该被包括。默认值为"false"。
经过测试,当在被LAUNCHER的Activity设置了android:excludeFromRecents="true",App不显示在最近使用过的应用程序列表中。也就是如下设置
如果MainActivity是LAUNCHER的Activity,而SecondActivity是MainActivity里的一个Button被点击后才启动的,如果在注册清单了给SecondActivity设置了android:excludeFromRecents="true",是无效的,如下设置
但是如果在注册清单里的SecondActivity里设置了android:launchMode="singleInstance",那么,当当前显示的是SecondActivity的时候,App是不会显示在最近使用过的应用程序列表中。
这也正好验证了上面的一句话“当这个活动是根活动的一个新任务,这个属性决定了任务应不应该出现在列表中最近的应用程序。”也就是说只有当这个Activity是处于任务栈根部的时候android:excludeFromRecents="true"才会起作用。但是,如果加了android:launchMode="singleInstance"当我们点击桌面的APP图标的时候,显示的是MainActivity而不是SecondActivity.
最后展示一下什么是最近使用过的应用程序列表:
怎样防止App在后台运行,点击应用桌面图标重新启动?这个问题之前有碰到过,这篇 文章 有解释。本来打算解决上面“加了android:launchMode="singleInstance"后,当APP在后台运行,点击应用桌面图标的时候显示的不是APP进入后台时显示的界面”的问题,但是并没有用,这里记录一下,以后有时间再研究吧。
http://download.csdn.net/detail/lgywsdy/9876908
Ⅱ Android开发如何实现:在app1中点击Button使正在运行的app2不在近期任务列表显示 怎么做
调用接口呗,好多实现方式,如果都是同一台手机,你可以使用aidl技术,也就像进程之间的通信。如果不在同一台手机,你可以通过网络技术,前提是后台得有处理接口。如果你都不想用,想简单,那就通过本地文件进行操作。前提是android6之后,操作读写得申请动态权限哦。方法多得是,看具体的业务需求了。