我在我的 Android 应用程序中运行了一项服务。此服务是使用具有重复警报的 AlarmManager 启动的。当某个事件发生时,服务会发出一个广播,该广播在一个片段中被接收。那里的警报被取消(alarm.cancel(pendingIntent))。
到目前为止,一切都很好。但是如果活动/片段被破坏了怎么办?我怎样才能取消服务?
我在我的 Android 应用程序中运行了一项服务。此服务是使用具有重复警报的 AlarmManager 启动的。当某个事件发生时,服务会发出一个广播,该广播在一个片段中被接收。那里的警报被取消(alarm.cancel(pendingIntent))。
到目前为止,一切都很好。但是如果活动/片段被破坏了怎么办?我怎样才能取消服务?
只需使用您在Activity/Fragment 方法中启动它时使用alarm.cancel()
的相同方法调用它:pendingIntent
onDestroy
AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarm.cancel(pendingIntent)
从cancel()
方法的描述:
删除任何匹配的警报Intent
。任何类型的警报Intent
与此警报匹配(由 定义filterEquals(Intent)
)都将被取消。