我已经阅读了很多关于关闭其他应用程序的文档和其他帖子.我知道文档说Android不是这样设计的.Android希望休眠应用程序,而不是杀死进程.这是有道理的但是......我编写了一个应用程序,可以根据用户配置的系统事件自动启动其他应用程序.用户喜欢它,并希望在后续系统事件发生后关闭/终止这些应用程序.我想说的是用户要求我为他们自动化.这是我的应用程序的重点.它会自动启动其他应用程序,现在他们想要自动关闭或终止它们.很多人说这是不可能的,但确实如此.有几个任务杀手应用程序,他们做我想做的事情.我试过了
Process.killProcess(pid);
Run Code Online (Sandbox Code Playgroud)
但这似乎并不多.在该方法上阅读doco,它说Linux Kernal仍然会强制执行权限.我甚至试图杀死所有进程,但它没有做任何事情.也许我没有正确地获得进程列表.我使用以下内容获取要杀死的进程列表
for(RunningAppProcessInfo info:activityManager.getRunningAppProcesses()){
Run Code Online (Sandbox Code Playgroud)
然后我使用Process.killProcess(info.pid); 杀死这个过程.我甚至尝试过:
activityManager.killBackgroundProcesses(String.valueOf(info.pid));
activityManager.killBackgroundProcesses(String.valueOf(info.processName));
Run Code Online (Sandbox Code Playgroud)
然后
Intent i = new Intent();
i.setComponent(new ComponentName(ProcessName, ProcessName+".Main"));
context.stopService(i);
Run Code Online (Sandbox Code Playgroud)
任何人都可以真正回答这个问题而不是告诉我它不应该完成或者问我为什么要这样做呢?请提供代码示例或有意义的内容.
小智 4
你说的完全有可能。只需获取 ActivityManager 系统服务,然后使用 .restartPackage() (已弃用)或 .killBackgroundProcesses()。
ActivityManager activityManager = (ActivityManager) context.getSystemService("activity");
activityManager.restartPackage(packageName);
Run Code Online (Sandbox Code Playgroud)
你会需要:
<uses-permission android:name="android.permission.RESTART_PACKAGES" />
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8094 次 |
| 最近记录: |