Java android:Alarmmannager强制停止应用程序
我正在使用alarmmanager类为用户安排在某个特定时间内每天午餐的通知,但当第次到来时,它会强制停止应用程序 这是我在创建主活动时调用的setAlarm()方法Java android:Alarmmannager强制停止应用程序,java,android,eclipse,alarmmanager,Java,Android,Eclipse,Alarmmanager,我正在使用alarmmanager类为用户安排在某个特定时间内每天午餐的通知,但当第次到来时,它会强制停止应用程序 这是我在创建主活动时调用的setAlarm()方法 public void setAlarm() { // TODO Auto-generated method stub AlarmManager alarmMgr; PendingIntent alarmIntent; alarmMgr = (AlarmManager) getSystem
public void setAlarm() {
// TODO Auto-generated method stub
AlarmManager alarmMgr;
PendingIntent alarmIntent;
alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, AlarmReceiver.class);
alarmIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
// Set the alarm to start at approximately 8:00 p.m.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 10);
calendar.set(Calendar.MINUTE, 17);
// With setInexactRepeating(), you have to use one of the AlarmManager
// interval
// constants--in this case, AlarmManager.INTERVAL_DAY.
alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY,
alarmIntent);
}
这就是BroadcastReceiver类
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent arg1) {
creatNotification(context, "Times Up", "5 Seconds Passed", "Alert");
}
private void creatNotification(Context context, String MSG, String MSgText, String MSGAlert) {
PendingIntent NotifIntent = PendingIntent.getActivity(context, 0, new Intent(context, MainActivity.class), 0);
NotificationCompat.Builder notifBuilder = new NotificationCompat.Builder(context);
notifBuilder.setContentTitle("title").setContentText("Content")
.setTicker("Ticker").setSmallIcon(R.drawable.ic_launcher);
notifBuilder.setContentIntent(NotifIntent);
notifBuilder.setDefaults(NotificationCompat.DEFAULT_SOUND);
notifBuilder.setAutoCancel(true);
NotificationManager notificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1, notifBuilder.build());
}
有什么想法吗?你在清单文件中定义了你的广播接收器吗?我删除了
calendar.setTimeInMillis(System.currentTimeMillis())
并使用alarmMgr.setRepeating
而不是alarmMgr.setInexactRepeating
,这是我的工作方式。请试一试。即使使用不精确的重复,它也能起作用,谢谢你