我有一個服務在我的Android應用程序中運行。該服務是使用具有重複警報的AlarmManager開始的。當某個事件發生時,該服務發送一個廣播,在一個片段內接收。在那裏警報被取消(alarm.cancel(pendingIntent))。當活動被破壞時取消警報
到目前爲止,一切都很好。但是如果活動/碎片被破壞,我該怎麼辦?我怎樣才能取消該服務?
我有一個服務在我的Android應用程序中運行。該服務是使用具有重複警報的AlarmManager開始的。當某個事件發生時,該服務發送一個廣播,在一個片段內接收。在那裏警報被取消(alarm.cancel(pendingIntent))。當活動被破壞時取消警報
到目前爲止,一切都很好。但是如果活動/碎片被破壞,我該怎麼辦?我怎樣才能取消該服務?
只需撥打這個alarm.cancel()
具有相同pendingIntent
你已經使用在onDestroy
方法活動/片段的開始吧:
AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarm.cancel(pendingIntent)
從cancel()
方法的描述:
與刪除任何警報匹配Intent
。任何類型的報警,其中Intent
匹配此報警(由filterEquals(Intent)
定義)將被取消。
謝謝,它的工作! – deimos1988
難道你不能在服務中發送廣播並取消報警嗎? – VM4
@V M我想取消服務內的鬧鐘,但我該怎麼做? – deimos1988
與我在片段中取消的方式相同? – VM4