Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android:Alarmmannager强制停止应用程序_Java_Android_Eclipse_Alarmmanager - Fatal编程技术网

Java android:Alarmmannager强制停止应用程序

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

我正在使用alarmmanager类为用户安排在某个特定时间内每天午餐的通知,但当第次到来时,它会强制停止应用程序 这是我在创建主活动时调用的setAlarm()方法

    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
,这是我的工作方式。请试一试。即使使用不精确的重复,它也能起作用,谢谢你