Java 如何从我的应用程序退出另一个应用程序(不是我的应用程序)';这是服务,但不是扼杀服务

Java 如何从我的应用程序退出另一个应用程序(不是我的应用程序)';这是服务,但不是扼杀服务,java,android,Java,Android,我正在开发一个应用程序服务,它将显示在当前前台的另一个应用程序的顶部,如果用户按下后退按钮,它将破坏该服务并退出该应用程序,但不会杀死它 我读过很多关于堆栈溢出的文章,这些文章告诉我使用finish()或finishafinity(),但只有当它是我自己的应用程序活动时,它才起作用 我可以用软件包名称退出应用程序吗 FrameLayout interceptorLayout = new FrameLayout(this) { @Override public boolean dispa

我正在开发一个应用程序服务,它将显示在当前前台的另一个应用程序的顶部,如果用户按下后退按钮,它将破坏该服务并退出该应用程序,但不会杀死它

我读过很多关于堆栈溢出的文章,这些文章告诉我使用finish()或finishafinity(),但只有当它是我自己的应用程序活动时,它才起作用

我可以用软件包名称退出应用程序吗

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);
  }
};

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

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

您无法命令其他应用程序,除非它们显式地公开API来执行此操作(大多数应用程序不这样做)。但它是否能够退出前台应用程序?否,使用此方法,系统会立即终止与给定包关联的所有后台进程。这与内核杀死这些进程以回收内存是一样的;系统将根据需要在将来重新启动这些进程。
ActivityManager am = (ActivityManager)getSystemService(Activity.ACTIVITY_SERVICE);
am.killBackgroundProcesses(packageName);