是否可以检测应用程序的退出?

Dev*_*man 10 java android launch

我的Android应用程序允许从此启动其他已安装的应用程序.这显示了一些允许的应用程序.如果用户尝试启动不允许的应用程序,则显示消息并使用正在运行的任务返回到我的活动(从每个应用程序启动的位置).我的应用程序充当家庭启动器.如果是一个被阻止的应用程序,则意图进行此活动.例如:可以从三星设备中的图库启动相机.如果相机不是允许的,则显示被阻止的消息并退出到我的但是,当重新启动图库时,阻止的消息会再次显示,因为顶部活动(相机活动)在堆栈中显示.

但退出这些被阻止的应用程序并不完美.

  1. 是否有可能获得应用程序的关闭/退出事件?

  2. 如何完成整个应用程序(通过完成所有应用程序).

  3. 如何在没有任何先前发布历史的情况下启动应用程序?

提前致谢

Tri*_*ode 14

是否有可能获得应用程序的关闭/退出事件?

是的,LauncherActivity你可以在你的内部你可以override onDestroy在应用程序退出时调用此方法.

How can i finish an application as whole(By finishing all its applications)?
Run Code Online (Sandbox Code Playgroud)

我相信你想在这里停止你所有的活动.这可以通过多种方式实现.

android.os.Process.killProcess(android.os.Process.myPid());
Run Code Online (Sandbox Code Playgroud)

要么

Intent intent = new Intent(getApplicationContext(), YourHomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

这将清除所有活动,并将带给用户HomeActivity.调用它时,您可以在意图中添加一个标志,并使用该值也可以完成HomeActivity.使用finish()方法完成活动.

如何在没有任何先前发布历史的情况下启动应用程序?

您可以使用相同的上述解决方案来实现此目的.第二个.

希望这会有所帮助.

onTerminate应用程序类中有一个方法,但这不能在生产环境中使用.在这里查看更多相关信息

  • 等等....覆盖LauncherActivity的onDestroy功能?如果LauncherActivity导航到另一个Activity,该怎么办?这也将调用onDestroy.这对我来说似乎是灾难性的.如果我错了,你可以纠正我吗? (6认同)