如何在 Android 应用程序被杀死之前执行代码
How to execute code before Android app is killed
我有一个 Android 连接到周围设备的应用程序 目前 运行 相同的应用程序,即使在后台.
为此,我使用 WiF-Direct 来宣传我目前 运行 所说的应用程序。
因此,我需要在应用程序被终止后立即停止发布此广告。
onDestroy()
无法使用,因为它不能保证被调用。
onStop()
和 onPause()
无法使用,因为应用程序仍然是 运行。
我怎样才能做到这一点?
目前,即使应用程序 closed/killed,该服务仍在广告中。
最好的实施方式可能是使用另一项服务 运行ning 来查询您的应用是否在前台(即 运行ning)
您可以运行查询定期检查,比如每 60 秒一次。然后,如果该应用未 运行ning。您可以停止 WiFi Direct 服务,然后自行停止。
你应该可以通过服务来做到这一点。
在您的应用启动时启动服务。
覆盖 onTaskRemoved 方法
@Override
public void onTaskRemoved(Intent rootIntent)
{
}
在这个方法中做你必须做的。
可以在此处找到更详细的答案:How to know when my app has been killed?(2 个答案)
我有一个 Android 连接到周围设备的应用程序 目前 运行 相同的应用程序,即使在后台.
为此,我使用 WiF-Direct 来宣传我目前 运行 所说的应用程序。
因此,我需要在应用程序被终止后立即停止发布此广告。
onDestroy()
无法使用,因为它不能保证被调用。onStop()
和onPause()
无法使用,因为应用程序仍然是 运行。
我怎样才能做到这一点?
目前,即使应用程序 closed/killed,该服务仍在广告中。
最好的实施方式可能是使用另一项服务 运行ning 来查询您的应用是否在前台(即 运行ning)
您可以运行查询定期检查,比如每 60 秒一次。然后,如果该应用未 运行ning。您可以停止 WiFi Direct 服务,然后自行停止。
你应该可以通过服务来做到这一点。
在您的应用启动时启动服务。 覆盖 onTaskRemoved 方法
@Override
public void onTaskRemoved(Intent rootIntent)
{
}
在这个方法中做你必须做的。 可以在此处找到更详细的答案:How to know when my app has been killed?(2 个答案)