应用程序从后台关闭后取消通知

use*_*863 6 android android-lifecycle android-notifications

我有一个活动,显示通知栏上的通知.如果用户按下主页按钮进入后台,我会保留通知(这就是我需要的),但是当用户关闭应用程序时,我需要取消通知,这就是我的问题.

  • 我试图取消关于onDestroy的通知,但它没有被解雇.
  • 我试图为通知设置setOngoing为true.

我怎么能处理这个?每当用户进入后台然后关闭应用程序时,我需要从通知栏中删除通知,但如果用户将应用程序保留在后台,我需要通知.

tyc*_*czj 2

您在创建通知时就有了一个 ID,对吧?

然后您所要做的就是使用该 ID 来取消它。
例如:

NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.cancel(4);
Run Code Online (Sandbox Code Playgroud)

当他们退出您的应用程序或您在 Activity 上调用 finish() 时,会触发 on destroy 。

  • onDestroy 并不是每次都会被调用。是否调用由android系统决定。我正在使用这段代码来取消调用 onDestroy 时的通知,但并不是每次都调用它。我还可以做些什么? (2认同)
  • @kabuto178 onPause 每当用户离开活动时(无论是点击主页按钮还是退出应用程序)都会被调用。因此,如果他在 onPause 中取消通知,那么当用户点击主页按钮时通知就会被取消,这是他不希望发生的事情 (2认同)