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