有什么方法可以知道 android 应用程序正在退出吗?

Is there any way to know that an android app is exiting?

我希望在我的应用中有以下行为:

1) 在启动时显示通知:完成

2) 切换应用的活动时不显示通知

3) 如果通过此应用启动另一个应用,再次返回该应用时显示通知

我计划通过共享首选项(通过在其中存储一个布尔值)来实现它,

但是想不出重置这个值的地方

即如何知道该应用程序正在退出或切换到另一个应用程序以重置此值(因此它可以在应用程序再次启动时显示通知)。

Activity进入后台时,调用onPause(),当它回到前台时,调用onResume()。您可以使用该状态来 hide/show 您的通知,甚至可以存储您的 SharedPreferences.

看看Activity生命周期:

尝试了解 Android 应用程序生命周期。

阅读以下方法文档。

onCreate() , onStart(), onPause() , onResume() , onDestroy() , onRestart() 

Link

如果您想检测是否所有应用程序的活动都进入后台,您需要扩展应用程序 class 并注册 activity 生命周期侦听器。然后只计算对 onPause() 和 onCreate() 方法的调用。 http://developer.android.com/reference/android/app/Application.html#registerActivityLifecycleCallbacks(android.app.Application.ActivityLifecycleCallbacks)

3) If another app is launched over this app, while coming back to the app again show notification again.

为此,您需要覆盖后退按钮并检查 activity 堆栈。如果为 0 - 显示通知。