提醒的日期和时间不匹配

时间:2019-03-20 10:20:56

标签: java android

我已经构建了一个小提醒应用程序演示,其中用户填写了一些详细信息并得到通知。 当我设置通知时间时,将当前时间设置为5分钟后,例如当前时间是14:55,那么我将当前日期设置为15:00。 现在,通知正好按时到来,当我什么也不做时,只需等待5分钟即可结束。

但是,当我手动转到我的Android手机并将时间设置为4分钟(14:59)之后,等待1分钟后,通知不会发出。为什么?

代码:

public void setAlarm(Context context, Calendar calendar, int ID) {
        mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);

        // Put Reminder ID in Intent Extra
        Intent intent = new Intent(context, AlarmReceiver.class);
        intent.putExtra(REMINDER_ID, Integer.toString(ID));
        mPendingIntent = PendingIntent.getBroadcast(context, ID, intent, PendingIntent.FLAG_CANCEL_CURRENT);

        // Calculate notification time
        Calendar c = Calendar.getInstance();
        long currentTime = c.getTimeInMillis();
        long diffTime = calendar.getTimeInMillis() - currentTime;

        // Start alarm using notification time
        mAlarmManager.set(AlarmManager.ELAPSED_REALTIME,
                SystemClock.elapsedRealtime() + diffTime,
                mPendingIntent);

        // Restart alarm if device is rebooted
        ComponentName receiver = new ComponentName(context, BootReceiver.class);
        PackageManager pm = context.getPackageManager();
        pm.setComponentEnabledSetting(receiver,
                PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
                PackageManager.DONT_KILL_APP);
    }

0 个答案:

没有答案