首先,我在StackOverflow上发现了一些类似的问题,但没有一个答案解决了我的问题.我也用谷歌搜索了所有前30个结果.
所以我正在编写一个服务,它将检查前景中的运行情况,比如20秒.如果前台应用程序在黑名单中,那么我将弹出一个对话框Activity来说"当前应用程序需要停止",然后当用户按下该对话框的OK时,该应用程序将通过以下方法停止:
private void killApp(String packageName) {
ActivityManager am = (ActivityManager)getApplicationContext().getSystemService(ACTIVITY_SERVICE);
Log.d(TAG, "Trying to kill app " + packageName);
am.killBackgroundProcesses(packageName);
}
Run Code Online (Sandbox Code Playgroud)
但是,在我的测试中,应用程序根本没有停止.当对话框关闭时,前台应用程序仍然存在,与弹出对话框之前的状态完全相同.我相信我拥有正确的API级别以及必要的权限:
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
Run Code Online (Sandbox Code Playgroud)
我真的被卡住了,任何帮助都将不胜感激!
小智 5
/ Android在屏幕上显示即活动视图时不会终止应用程序或进程.所以切换到主屏幕,然后杀死你想要的应用程序或进程 /
public void KillApplication(String KillPackage)
{
ActivityManager am = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(startMain);
am.killBackgroundProcesses(KillPackage);
Toast.makeText(getBaseContext(),"Process Killed : " + KillPackage ,Toast.LENGTH_LONG).show();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11984 次 |
| 最近记录: |