我正在开发一个应用程序服务,该应用程序将显示在当前位于前台的另一个应用程序的顶部,如果用户按下后退按钮,它将破坏该服务并退出该应用程序,但不会杀死它。< / p>
我已经阅读了很多有关堆栈溢出的文章,这些文章告诉我使用finish()或finishAffinity(),但只有在我自己的应用程序活动中它才有效。
我可以使用程序包名称退出该应用程序吗?
FrameLayout interceptorLayout = new FrameLayout(this) {
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
// Only fire on the ACTION_DOWN event, or you'll get two events (one for _DOWN, one for _UP)
if (event.getAction() == KeyEvent.ACTION_DOWN) {
// Check if the HOME button is pressed
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
Log.v(TAG, "BACK Button Pressed");
onDestroy();
// As we've taken action, we'll return true to prevent other apps from consuming the event as well
return true;
}
}
// Otherwise don't intercept the event
return super.dispatchKeyEvent(event);
}
};
答案 0 :(得分:0)
我不建议关闭其他应用程序。 您可以使用其他应用的程序包名称退出 在您的AndroidManifest.xml文件中声明一个权限。在这里:
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
,现在使用ActivityManager类杀死其他应用程序,它将起作用。
ActivityManager am = (ActivityManager)getSystemService(Activity.ACTIVITY_SERVICE);
am.killBackgroundProcesses(packageName);