【问题标题】:show a notification on a particular date and time在特定日期和时间显示通知
【发布时间】:2018-06-18 15:09:51
【问题描述】:

我需要在特定日期和时间(27-06-2015 13:00)显示通知。最初,我显示的是敬酒消息。我创建了一个广播接收器来做到这一点。我这样称呼未决意图 -

活动代码 -

Calendar cal=Calendar.getInstance();
cal.set(Calendar.MONTH,(5));
cal.set(Calendar.YEAR,2015);
cal.set(Calendar.DAY_OF_MONTH, 27);
cal.set(Calendar.HOUR_OF_DAY,13);
cal.set(Calendar.MINUTE,00);

Intent myIntent1 = new Intent(this, AlarmBroadCustReciver.class);
PendingIntent pendingIntent1 = PendingIntent.getBroadcast(this, 1253, myIntent1,
        PendingIntent.FLAG_UPDATE_CURRENT);

AlarmManager alarmManager1 = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager1.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent1);

广播接收方代码 -

public class AlarmBroadCustReciver extends BroadcastReceiver {
    public AlarmBroadCustReciver() {
    }

    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "Alarm worked.", Toast.LENGTH_LONG).show();
    }
}

我正在尝试通过更改手机时间来检查。我将手机时间更改为 12:59。但是当我调用广播接收器时,它会立即根据我的逻辑给出应该显示时间为 13:00 的 toast 消息。我做错了什么吗?

【问题讨论】:

    标签: android broadcastreceiver alarmmanager


    【解决方案1】:

    你的代码中看起来很清楚的每一件事可能是你初始化的Calendar obj 的问题。

    如下尝试一次,

    Calendar cal = Calendar.getInstance();
    cal.setTimeInMillis(System.currentTimeMillis());
    cal.clear();
    cal.set(2015,5,27,13,00); 
    

    设置

    alarmManager1.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent1);
    

    希望对你有帮助。

    【讨论】:

    • 是的,你是绝对正确的@Nag。为你投票;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多