android recent activity,Android 移除最近任务

权限

必须是一个系统app,增加以下权限:

代码

/**

* 移除最近任务

*

* @param taskId

*/

public void removeTask(int taskId) {

Log.d(TAG, "removeTask: " + taskId);

ActivityManager am = (ActivityManager) theContext.getSystemService(Context.ACTIVITY_SERVICE);

try {

Class> activityManagerClass = Class.forName("android.app.ActivityManager");

Method removeTask = activityManagerClass.getDeclaredMethod("removeTask", int.class);

removeTask.setAccessible(true);

removeTask.invoke(am, taskId);

} catch (ClassNotFoundException e) {

Log.i(TAG, "No Such Class Found Exception", e);

} catch (Exception e) {

Log.i(TAG, "General Exception occurred", e);

}

}

/**

* 通过包名清理任务

* @param packageName 包名

*/

public void clearRecentTaskByPackageName(String packageName) {

if (theContext == null) return;

List mRunningTasks = null;

try {

mRunningTasks = ActivityManagerNative.getDefault().getTasks(MAX_RECENT_TASKS, 0); //30表示获取的最大数

} catch (RemoteException e) {

e.printStackTrace();

}

for (ActivityManager.RunningTaskInfo amTask : mRunningTasks) {

if (packageName.contentEquals(amTask.baseActivity.getPackageName())) {

removeTask(amTask.id);

}

}

}

/**

* 清理没有正在运行的任务

*/

public void clearRecentListByUnused() {

List taskIdList = new ArrayList<>();

List runningTasks = null;

try {

runningTasks = ActivityManagerNative.getDefault().getTasks(MAX_RECENT_TASKS, 0);

} catch (RemoteException e) {

e.printStackTrace();

}

for (ActivityManager.RunningTaskInfo amTask : runningTasks) {

taskIdList.add(amTask.id);

Log.d("TaskInfo", amTask.baseActivity.getPackageName() + "(" + amTask.id + ")");

}

ActivityManager am = (ActivityManager) theContext.getSystemService(Context.ACTIVITY_SERVICE);

List recentTasks = am.getRecentTasks(MAX_RECENT_TASKS, ActivityManager.RECENT_IGNORE_UNAVAILABLE);

for (int i = 0; i < recentTasks.size(); ++i) {

ActivityManager.RecentTaskInfo info = recentTasks.get(i);

if(info.id == -1 || !taskIdList.contains(info.persistentId))

removeTask(info.persistentId);

}

}

Sharezer , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Android 移除最近任务!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值