闹钟管理器是否会在选定时间之前立即启动闹钟?

3
  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();

    }
};
public void onReceive(Context arg0, Intent arg1) {
    // 获取系统的 AlarmManager 服务
    AlarmManager mgr = (AlarmManager)arg0.getSystemService(Context.ALARM_SERVICE);
// 显示 Toast 提示信息 Toast.makeText(arg0,"闹钟已启动.....", Toast.LENGTH_LONG).show(); }
2个回答

0

尝试移除这行代码

calnow.setTimeInMillis(System.currentTimeMillis());

我相信那可能会引起问题,但不能确定。


0

试试这个:

   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();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接