andorid 怎么杀掉后台应用
答案:2 悬赏:40 手机版
解决时间 2021-12-29 08:31
- 提问者网友:回忆在搜索
- 2021-12-28 23:58
andorid 怎么杀掉后台应用
最佳答案
- 五星知识达人网友:第四晚心情
- 2021-12-29 01:31
查了下官网,Android.os.Process.killProcess(appProcessInfo.pid);只能杀死自己所创建的进程,其它进程是杀不掉的,要用到另外一个方法activityManager.killBackgroundProcesses(processName);,同是权限也要加上
以下是我的测试代码
public class ListViewActivity extends Activity {
private Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
killAll(getApplicationContext());
}
});
}
public static void killAll(Context context) {
//获取一个ActivityManager 对象
ActivityManager activityManager = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
//获取系统中所有正在运行的进程
List appProcessInfos = activityManager
.getRunningAppProcesses();
//获取当前activity所在的进程
String currentProcess=context.getApplicationInfo().processName;
//对系统中所有正在运行的进程进行迭代,如果进程名不是当前进程,则Kill掉
for (RunningAppProcessInfo appProcessInfo : appProcessInfos) {
String processName=appProcessInfo.processName;
if (!processName.equals(currentProcess)) {
System.out.println("ApplicationInfo-->"+processName);
activityManager.killBackgroundProcesses(processName);
System.out.println("Killed -->PID:"+appProcessInfo.pid+"--ProcessName:"+processName);
}
}
}
}
注意进程的过滤,以免把主要的进程也结束了
以下是我的测试代码
public class ListViewActivity extends Activity {
private Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
killAll(getApplicationContext());
}
});
}
public static void killAll(Context context) {
//获取一个ActivityManager 对象
ActivityManager activityManager = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
//获取系统中所有正在运行的进程
List
.getRunningAppProcesses();
//获取当前activity所在的进程
String currentProcess=context.getApplicationInfo().processName;
//对系统中所有正在运行的进程进行迭代,如果进程名不是当前进程,则Kill掉
for (RunningAppProcessInfo appProcessInfo : appProcessInfos) {
String processName=appProcessInfo.processName;
if (!processName.equals(currentProcess)) {
System.out.println("ApplicationInfo-->"+processName);
activityManager.killBackgroundProcesses(processName);
System.out.println("Killed -->PID:"+appProcessInfo.pid+"--ProcessName:"+processName);
}
}
}
}
注意进程的过滤,以免把主要的进程也结束了
全部回答
- 1楼网友:春色三分
- 2021-12-29 02:30
你好!
使用内核调谐器可以杀进程,前台后台都可以,前提是有root权限。
如有疑问,请追问。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯