【问题标题】:Alarm manager initiates alarm instantly before selected time?警报管理器在选定时间之前立即启动警报?
【发布时间】:2013-08-01 10:19:42
【问题描述】:
  SA=(Button)findViewById(R.id.button1);
  SA.setOnClickListener(new OnClickListener() {

    @SuppressWarnings("deprecation")
    @Override
        public void onClick(View v) {
            showDialog(id);


        }
    });

}
    @Override
    protected Dialog onCreateDialog(int id1) {
    switch (id1) {
    case id:
        // set time picker as current time

        return new TimePickerDialog(this, 
                                     timePickerListener, hour, min,false);
    }
    return null;
}

    private TimePickerDialog.OnTimeSetListener timePickerListener = 
        new TimePickerDialog.OnTimeSetListener() {
    public void onTimeSet(TimePicker view, int selectedHour,
            int selectedMinute) {
        Calendar calnow=Calendar.getInstance();
        calnow.setTimeInMillis(System.currentTimeMillis());
        calnow.set(Calendar.HOUR_OF_DAY,selectedHour);
        calnow.set(Calendar.MINUTE,selectedMinute);
        calnow.set(Calendar.SECOND, 0);
         Intent intent=new Intent(getBaseContext(),alarm.class); 
        PendingIntent pendingintent= PendingIntent.getBroadcast(getBaseContext(),0,       intent, 0);
         AlarmManager alarmManager =     (AlarmManager)getSystemService(Context.ALARM_SERVICE);

          alarmManager.set(AlarmManager.RTC_WAKEUP,  calnow.getTimeInMillis(),pendingintent);
          Toast.makeText(getBaseContext(), "alarm set", Toast.LENGTH_SHORT).show();

    }
};
公共无效 onReceive(上下文 arg0,意图 arg1){ AlarmManager mgr = (AlarmManager)arg0.getSystemService(Context.ALARM_SERVICE); Toast.makeText(arg0,"警报开始.....", Toast.LENGTH_LONG).show();

【问题讨论】:

    标签: android alarmmanager


    【解决方案1】:

    尝试删除此行

    calnow.setTimeInMillis(System.currentTimeMillis());
    

    我相信这会导致问题,不能确定。

    【讨论】:

      【解决方案2】:

      试试这个:

         Calendar cal = Calendar.getInstance();
         cal.set(Calendar.HOUR_OF_DAY, selectedHour);
         cal.set(Calendar.MINUTE, selectedMinute);
         cal.set(Calendar.SECOND, 0);
         ca.set(Calendar.MILLISECOND, 0);
         Intent intent=new Intent(getBaseContext(),alarm.class); 
         PendingIntent pendingintent= PendingIntent.getBroadcast(getBaseContext(),0,        intent, 0);
         AlarmManager alarmManager =     (AlarmManager)getSystemService(Context.ALARM_SERVICE);
         alarmManager.set(AlarmManager.RTC_WAKEUP,  cal.getTimeInMillis(),pendingintent);
         Toast.makeText(getBaseContext(), "alarm set", Toast.LENGTH_SHORT).show();
      

      【讨论】:

        猜你喜欢
        • 2013-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-07
        • 1970-01-01
        相关资源
        最近更新 更多