android 强制关闭后台程序方法
2015-07-16 15:03
453 查看
1.
ActivityManager am1 = (ActivityManager)mContext.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningServiceInfo> recentTasks1 = am1.getRunningServices(50); //获得所有正在进行的程序
int numTasks = recentTasks1.size();
for(int i=0;i<numTasks;i++)
{
final ActivityManager.RunningServiceInfo recentInfo = recentTasks1.get(i);
if(recentInfo.pid==-1)
continue;
String procName=recentInfo.service.getPackageName();
Log.i(TAG,"procName="+procName+"\n");
Log.i(TAG,"clientLabel="+recentInfo.clientLabel+"\n");
Log.i(TAG,"process="+recentInfo.pid+"\n");
android.os.Process.killProcess(recentInfo.pid);
am1.removeTask(recentInfo.pid, ActivityManager.REMOVE_TASK_KILL_PROCESS);
am1.forceStopPackage(procName);
}
2.
List<RunningTaskInfo> list1 = am1.getRunningTasks(10);
Method forceStopPackage;
for (RunningTaskInfo info : list1)
{
procName=info.baseActivity.getPackageName();
try {
forceStopPackage = am.getClass().getDeclaredMethod("forceStopPackage", String.class);
forceStopPackage.setAccessible(true);
forceStopPackage.invoke(am, procName);
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
ActivityManager am1 = (ActivityManager)mContext.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningServiceInfo> recentTasks1 = am1.getRunningServices(50); //获得所有正在进行的程序
int numTasks = recentTasks1.size();
for(int i=0;i<numTasks;i++)
{
final ActivityManager.RunningServiceInfo recentInfo = recentTasks1.get(i);
if(recentInfo.pid==-1)
continue;
String procName=recentInfo.service.getPackageName();
Log.i(TAG,"procName="+procName+"\n");
Log.i(TAG,"clientLabel="+recentInfo.clientLabel+"\n");
Log.i(TAG,"process="+recentInfo.pid+"\n");
android.os.Process.killProcess(recentInfo.pid);
am1.removeTask(recentInfo.pid, ActivityManager.REMOVE_TASK_KILL_PROCESS);
am1.forceStopPackage(procName);
}
2.
List<RunningTaskInfo> list1 = am1.getRunningTasks(10);
Method forceStopPackage;
for (RunningTaskInfo info : list1)
{
procName=info.baseActivity.getPackageName();
try {
forceStopPackage = am.getClass().getDeclaredMethod("forceStopPackage", String.class);
forceStopPackage.setAccessible(true);
forceStopPackage.invoke(am, procName);
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
相关文章推荐
- Android实现表情 抓取新浪表情
- 详解Android解析Xml的三种方式——DOM、SAX以及XMLpull
- Windows7下获得System权限问题解决方法
- 安装软件 Nullsoft Install System 2.27汉化版 下载
- Could not load type System.ServiceModel.Activation.HttpModule解决办法
- PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
- oracle忘记sys/system/scott用户密码的解决方法
- Oracle中sys和system的区别小结
- System Repair Engineer (SREng) 功能介绍与下载
- Office 2007 System 常见问题集第1/3页
- php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
- android开发环境遇到adt无法启动的问题分析及解决方法
- Android开发 旋转屏幕导致Activity重建解决方法
- Android开发技巧之在a标签或TextView控件中单击链接弹出Activity(自定义动作)
- Android开发技巧之ViewStub控件惰性装载
- System 类 和 Runtime 类的常用用法介绍
- awk中让人郁闷的system()函数
- PHP中exec与system用法区别分析
- PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
- 无法读取配置节 system.serviceModel 因为它缺少节声明的解决方法