Android清理后台所有历史App任务

\frameworks\base\packages\SystemUI\src\com\android\systemui\recent\RecentsPanelView.java

 

public voiddeleteAllRecent(){

        final ActivityManager am = (ActivityManager)

                mContext.getSystemService(Context.ACTIVITY_SERVICE);

                       if (am != null) {     

                           for(TaskDescription recent :mRecentTaskDescriptions){

                                  am.removeTask(recent.persistentTaskId,ActivityManager.REMOVE_TASK_KILL_PROCESS);

                           }

                       }

   if(mRecentTaskDescriptions!=null){

                             mRecentTaskDescriptions.clear();

                                   if (mRecentTasksLoader.getLoadedTasks() !=null){

                                          mRecentTasksLoader.getLoadedTasks().clear();

                                   }

                                 dismissAndGoBack();

                               }

    }

   

   public static void delAllRecentTask(Contextcontext){

               Log.i("zhangliang=>1","delAllRecentTask");

         final ActivityManager am =(ActivityManager)

                context.getSystemService(Context.ACTIVITY_SERVICE);

        if(mRecentTaskDescriptions==null){

   

                           mRecentTaskDescriptions = new  ArrayList<TaskDescription>();

                           mRecentTaskDescriptions=getTaskInRecentList(context);

                          }


    

                       for(TaskDescription recent :mRecentTaskDescriptions){

                 

if(!recent.packageName.toString().equals("com.snowfish.aios.launcher")&&!recent.packageName.toString().equals("com.jeejen.family")){

                                                am.removeTask(recent.persistentTaskId,ActivityManager.REMOVE_TASK_KILL_PROCESS);

                                                }

                           } 

 if(mRecentTaskDescriptions!=null){

                           mRecentTaskDescriptions.clear();

                    

                           if(RecentTasksLoader.getInstance(context).getLoadedTasks()!= null){

                                          RecentTasksLoader.getInstance(context).getLoadedTasks().clear();

                                   }

                        }

                       // dismissActivityGoBack(context);            

}

//自定一个一个广播通知去清除所有的Task

frameworks\base\packages\SystemUI\src\com\android\systemui\recent\DeleteTaskReceiver.java

public classDeleteTaskReceiver extends BroadcastReceiver {

    @Override

    public void onReceive(Context context,Intent intent) {

    if("CLEAR_ALL_TASK".equals(intent.getAction())){

                 RecentsPanelView.delAllRecentTask(context);

}

通过发送上面那个广播过去即可

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值