广播接收器没有停止

时间:2016-04-18 00:20:59

标签: android broadcastreceiver android-alarms ondestroy

我有两个广播接收器按计划运行:

mAlarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                SystemClock.elapsedRealtime() + 1000, 20000, shortNotification);

mAlarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                SystemClock.elapsedRealtime() + 30000, 30000, breakNotification);

其中shortNotification和breakNotification:

breakNotification = PendingIntent.getBroadcast(this, 0, intentBreak, 0);
shortNotification = PendingIntent.getBroadcast(this, 0, intentShort, 0);

和intentBreak,intentShort是:

intentShort = new Intent(this, ShortBreakBroadcast.class);
intentBreak = new Intent(this, LongBreakBroadcast.class);

使用另一个答案(https://stackoverflow.com/a/7439072/4132650)我试图在关闭应用程序时停止onDestroy中的两个广播接收器(通过向左滑动,而不是按下主页按钮),但它没有工作:

TimerViewActivity.this.getPackageManager().setComponentEnabledSetting(shortBreakComponent, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
TimerViewActivity.this.getPackageManager().setComponentEnabledSetting(longBreakComponent, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

如何让它们停止?

我的应用有2个闹钟。 1表示短暂提醒,而第2表示提醒用户休息10分钟(这些时间缩短以进行测试)。两个警报都启动广播接收器:第一个启动短暂中断接收器,10分钟中断启动第二个不同的接收器。我跟踪用户是否使用加速度计进行了10分钟的休息。两个接收器都发送通知并开始播放音乐10秒钟。

当我关闭应用程序时,我希望所有进程都停止运行:通知,音乐,广播接收器和加速度计。 这并不会发生,因为显然两个接收器仍在运行并启动上述过程。

以下是Github链接:https://github.com/felixglusch/AccelTimer

0 个答案:

没有答案