应用关闭后,警报管理器停止

时间:2015-03-17 08:45:49

标签: java android broadcastreceiver broadcast

当我创建一个警报管理器时,它仅在应用程序打开时以及当我单击后退按钮或退出应用程序时警报已关闭 这是我的代码:

  PendingIntent pendingIntent = PendingIntent.getBroadcast(getActivity(), _id, i, PendingIntent.FLAG_ONE_SHOT);
                                   AlarmManager manager = (AlarmManager)getActivity().getSystemService(Context.ALARM_SERVICE);
                                   manager.set(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),pendingIntent);

那么我应该怎么做才能在应用关闭时让闹钟起作用

1 个答案:

答案 0 :(得分:1)

这是因为您将警报触发时间设置为:

      manager.set(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),pendingIntent);

System.currentTimeInMillis()立即触发。你需要给它一些时间,例如

  manager.set(AlarmManager.RTC_WAKEUP,System.currentTimeMillis()+5000,pendingIntent);

例如,在应用程序关闭后,这将在5秒内触发。

另外,从你的短文中不清楚,我希望你已经注册了一个BroadcastReceiver用于警报。如果您想要重复闹钟,则必须使用

    manager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeInMillis(),
    1000 * 60 * 20, alarmIntent);

例如....但最好使用Calendar对象并设置特定时间。网络中有很多例子,推荐的是API:

https://developer.android.com/training/scheduling/alarms.html

易于理解:

http://www.vogella.com/tutorials/AndroidTaskScheduling/article.html