如何从我的应用程序服务中退出另一个应用程序(不是我的),但不杀死它

时间:2019-06-18 10:25:04

标签: java android

我正在开发一个应用程序服务,该应用程序将显示在当前位于前台的另一个应用程序的顶部,如果用户按下后退按钮,它将破坏该服务并退出该应用程序,但不会杀死它。< / 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);
  }
};

1 个答案:

答案 0 :(得分:0)

我不建议关闭其他应用程序。 您可以使用其他应用的程序包名称退出 在您的AndroidManifest.xml文件中声明一个权限。在这里:

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />

,现在使用ActivityManager类杀死其他应用程序,它将起作用。

ActivityManager am = (ActivityManager)getSystemService(Activity.ACTIVITY_SERVICE);
am.killBackgroundProcesses(packageName);