应用关闭时如何执行一段代码?

Posted

技术标签:

【中文标题】应用关闭时如何执行一段代码?【英文标题】:How to execute a piece of code when app closes? 【发布时间】:2015-10-12 14:21:37 【问题描述】:

我想知道如何在应用关闭时执行一段代码。 我的目标是向通知发送取消调用,以便在应用关闭时通知被销毁。

【问题讨论】:

Activity.onDestory? onFinish 或 onDestroy 取决于您的生活环境需求。 【参考方案1】:

使用Activity onDestroy() 方法

@Override
public void onDestroy() 
    Log.d("SampleApp", "destroy");
    super.onDestroy();

【讨论】:

只有当应用程序被 TakeManager 杀死时才会被调用。 我的应用是一个音乐播放器,有时用户可能会在任务管理器中关闭它 你无法控制它,这意味着如果用户通过TaskManager关闭应用程序,你将无法执行任何代码。 那么感谢您对此事的澄清 我会谨慎调用 onDestroy() 中的代码。不仅仅是用户通过任务管理器可以终止应用程序 - 如果内存不足,操作系统可以终止应用程序。在这种情况下,也不会调用 onDestroy()。在这里查看这个答案:***.com/questions/22210241/…【参考方案2】:

我找到了我正在寻找的 here,尽管该过程没有得到很好的记录,但它是一个解决方案。

它基本上包括创建一个服务,该服务将在应用程序在任务管理器中被终止时执行一个操作。

使用this作为助手知道如何创建服务然后使用

@Override
public void onTaskRemoved(Intent rootIntent) 
    MainActivity.notification.onCancel();
    stopSelf();
    super.onTaskRemoved(rootIntent);

在任务管理器中关闭应用程序时终止通知并停止服务

【讨论】:

不适用于 API 级别 >= 26,请参阅 ***.com/a/47110577/1000551

以上是关于应用关闭时如何执行一段代码?的主要内容,如果未能解决你的问题,请参考以下文章

我该如何做模态对话框片段(代码在我关闭之前不会执行)

Play Framework + Akka:如何避免在关闭应用程序时执行计划任务

每当程序唤醒时,React Native如何执行一段代码?

如何测量用 PHP 编写的代码的速度? [关闭]

如何针对长时间执行的脚本关闭闪存保护?

如何在函数中包装一段代码? [关闭]