获取最近运行的应用,将自己的记录移除

本文介绍了在Android 5.0中如何获取最近运行的应用名称,同时探讨了ActivityManager.getRunningTasks()的废弃原因及其替代方案。此外,还提供了使应用不在最近任务列表中显示的方法,通过修改配置文件中的属性实现。

Android 5.0 获取最近运行的应用 
由于考虑到安全性ActivityManager.getRunningTasks(),在5.0上已经deprecated了。 
private String getLollipopRecentTask() { 
final int PROCESS_STATE_TOP = 2; 
try { 
Field processStateField = ActivityManager.RunningAppProcessInfo.class.getDeclaredField("processState"); 
List<ActivityManager.RunningAppProcessInfo> processes = ((ActivityManager) getSystemService(Context.ACTIVITY_SERVICE)).getRunningAppProcesses(); 
for (ActivityManager.RunningAppProcessInfo process : processes) { 
if (process.importance <= ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND && process.importanceReasonCode == 0) { 
int state = processStateField.getInt(process); 
if (state == PROCESS_STATE_TOP) { 
String[] packname = process.pkgList; 
return packname[0]; 



} catch (Exception e) { 
throw new RuntimeException(e); 

return ""; 
}

 

使应用信息不在运行列表中显示的方法需要修改配置文件中activity标签的两个值
android:noHistory="true"
android:excludeFromRecents="true">
将这两个值置为true
android:noHistory
这个属性用于设置在用户离开该Activity,并且它在屏幕上不再可见的时候,它是否应该从Activity的堆栈被删除。如果设置了true,则要删除,否则不删除。默认值是false。
如果设置为true,则意味着Activity不会保留历史轨迹。也就是说,它不会保留在任务的Activity堆栈中,因此用户不能够在返回到这个Activity。 这个属性在API Level 3中被引入。
android:excledeFromRecents
这属性用于设置由该 Activity所启动的任务是否应该被排除在最近使用的应用程序列表之外。也就是说,当这个 Activity是一个新任务的根节点时,这个属性决定了这个任务适应要显示在用户最近使用的应用程序列表中。如果设置为 true,则这个任务会被排除在列表之外,如何设置为 false,则应该包含在最近使用的应用列表中。默认值是 false。

 

转载于:https://www.cnblogs.com/chenlong-50954265/p/5773518.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值