警报管理器在12点之后

时间:2016-08-17 12:43:20

标签: android calendar broadcastreceiver alarmmanager android-broadcastreceiver

我正在尝试发送本地推送通知。为此,我定义了一个AlarmManager,它应该在一秒后发送推送不通知。 这很好......直到中午12点。它现在连续两天,应用程序在12点之后不起作用,但之前很好。

以下是AlarmManager的定义:

public void click(View view)
{
    Intent intent = new Intent(this, Push.class);

    calendar = Calendar.getInstance();

    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 
                PendingIntent.FLAG_UPDATE_CURRENT);

    AlarmManager alarmManager = (AlarmManager) getSystemService
                (ALARM_SERVICE);

    alarmManager.set(AlarmManager.RTC_WAKEUP, 
                calendar.getTimeInMillis()+1000, pendingIntent);

    Log.d("Push", "started");
}

这就是BroadcastReceiver的onReceive():

public void onReceive(Context context, Intent intent) 
{
    Log.d("Push", "done");
    [...]
}

你知道它为什么总是失败吗?我想这是日历,但我不知道如何解决它。

由于

1 个答案:

答案 0 :(得分:0)

我在这里看不到代码中的任何问题。如果您尚未解决问题,请发布更详细的信息或代码,以便我们确定问题。

您也可以尝试使用Handler类解决问题。

https://developer.android.com/reference/android/app/AlarmManager.html#set(int,long,android.app.PendingIntent)

Android文档也建议使用此功能。

  

注意:对于计时操作(刻度,超时等),使用Handler更容易,更有效