在A应用中的一个按钮,如何杀掉A应用所有的activity,而不杀掉本应用的服务?

解决方案 »

  1.   

    ActivityManager类killBackgroundProcesses(包名)
    加个权限 KILL_BACKGROUND_PROCESSES 
      

  2.   

    killBackgroundProcesses(String package) 这个是杀后台进程的,与该应用有联系的
      

  3.   

    额= =  
    当前进程貌似可以用这个android.os.Process.killProcess(pid);
      

  4.   

    服务配置在xml中,好像退出程序并不会关闭的吧?
      

  5.   

    不建议自己程序杀进程,如果是要退出就用递归finish加system.exit(0),这样正常退出。不至于牵连到服务。
      

  6.   

    把你其它的activity都加入一个list中,在你主activity退出时再把list的activity一起finish掉
      

  7.   

    //首先查询出在运行的app 排除自身的app进程 结束其它的app进程
         List<ActivityManager.RunningAppProcessInfo> runningList = manager.getRunningAppProcesses();
        
         for(int i=0;i<runningList.size();i++){
         ActivityManager.RunningAppProcessInfo info = runningList.get(i);
         String [] pkgList = info.pkgList;
         for (int j=0;j<pkgList.length;j++){
         Log.d(Tag,"pkgList--"+j+"=="+pkgList[j]);
         if(pkgList[j].equals(activity.getPackageName())){
         continue ;
         }
         //manager.killBackgroundProcesses(pkgList[j]);  //2.2 才支持的方法
         manager.restartPackage(pkgList[j]);//2.1 /2.2 都支持的方法  
         }
         }
      

  8.   


    killBackgroundProcesses(String package) 用了,不管用呀,莫非是我的包名不正确吗?
    AndroidManifest.xml文件部分配置:
    package="com.innofidei.protector";
    <activity android:name=".activity.ProAppListActivity"/>
      

  9.   

    那肯定不正确 package 获得的是package="com.innofidei.protector";这个值 你加日志打印以下就知道了