2011-11-25 93 views
4

我正在開發Android 2.1上的taskmanager。我想對幫助我的代碼從日期選擇器,並從時間選擇器日期設置任務設置鬧鈴..在選定的時間和日期設置鬧鐘

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    final EditText next = (EditText) findViewById(R.id.editText1); 
    final Button sub = (Button) findViewById(R.id.button1); 
    final Button res = (Button) findViewById(R.id.button2); 
    final DatePicker dp = (DatePicker) findViewById(R.id.datePicker1); 
    final TimePicker tp = (TimePicker) findViewById(R.id.timePicker1); 

    sub.setOnClickListener(new View.OnClickListener() { 
     public void onClick(final View view) { 

      int y=dp.getYear(); 
      int mo=dp.getMonth(); 
      int day=dp.getDayOfMonth(); 

      Time t = new Time(); 
            int h=t.getCurrentHour(); 
            int m=t.getCurrentMinutes(); 

    } 

private AlarmManager getSystemService(String alarmService) { 

      // TODO Auto-generated method stub 
      return null; 
     } 

    }); 

回答

6

嘿,這就是如何在Android AlarmManager告警設置成spesific日期 (上日期的android alarmmanager設定的報警) 我一直在尋遍了這一點。 注意本月的價值!

Calendar cal = Calendar.getInstance(TimeZone.getDefault(), Locale.getDefault()); 
//cal.add(Calendar.SECOND, 10); 

cal.set(Calendar.DATE,19); //1-31 
cal.set(Calendar.MONTH,Calendar.DECEMBER); //first month is 0!!! January is zero!!! 
cal.set(Calendar.YEAR,2012);//year... 

cal.set(Calendar.HOUR_OF_DAY, 16); //HOUR 
cal.set(Calendar.MINUTE, 39);  //MIN 
cal.set(Calendar.SECOND, 10);  //SEC 


// Create a new PendingIntent and add it to the AlarmManager 
Intent intent = new Intent(MainActivity.this, alarmAct.class); 
PendingIntent pendingIntent = PendingIntent.getService(MainActivity.this, 0,intent, 0); 

//or if you start an Activity 
//PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 0,intent, 0); 

AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent); 
+0

任何更改將被製作到清單中? – Metalhead1247

2

這是如何設置報警。需要

AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
Calendar calendar = Calendar.getInstance(); 
calendar.setTimeInMillis(System.currentTimeMillis()); 

//when does this go off? 
Long mHowLongFromNowInMilliseconds = 10000 //(10 seconds from now) 
calendar.add(Calendar.MILLISECOND, mHowLongFromNowInMilliseconds); 

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

日曆心不是...但它可以幫助;)

AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
alarmManager.set(AlarmManager.RTC_WAKEUP, 10000, pendingIntent); 

!請記住:當設備完全關閉時,警報將被取消。

http://developer.android.com/reference/android/app/AlarmManager.html

+0

,但我想從時間選擇器和日期格式的日期選擇器 –

+0

把它放在時間,那麼你需要設置日曆該日期和時間。 – bwoogie

0
public class AlarmService extends Activity { 
    private PendingIntent mAlarmSender; 

    @Override 
     protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // Create an IntentSender that will launch our service, to be scheduled 
     // with the alarm manager. 
     mAlarmSender = PendingIntent.getService(AlarmService.this, 
       0, new Intent(AlarmService.this, AlarmService_Service.class), 0); 

     setContentView(R.layout.alarm_service); 

     // Watch for button clicks. 
     Button button = (Button)findViewById(R.id.start_alarm); 
     button.setOnClickListener(mStartAlarmListener); 
     button = (Button)findViewById(R.id.stop_alarm); 
     button.setOnClickListener(mStopAlarmListener); 
    } 

    private OnClickListener mStartAlarmListener = new OnClickListener() { 
     public void onClick(View v) { 
      // We want the alarm to go off 30 seconds from now. 
      long firstTime = SystemClock.elapsedRealtime(); 

      // Schedule the alarm! 
      AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); 
      am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, 
          firstTime, 30*1000, mAlarmSender); 

      // Tell the user about what we did. 
      Toast.makeText(AlarmService.this, R.string.repeating_scheduled, 
        Toast.LENGTH_LONG).show(); 
     } 
    }; 

    private OnClickListener mStopAlarmListener = new OnClickListener() { 
     public void onClick(View v) { 
      // And cancel the alarm. 
      AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); 
      am.cancel(mAlarmSender); 

      // Tell the user about what we did. 
      Toast.makeText(AlarmService.this, R.string.repeating_unscheduled, 
        Toast.LENGTH_LONG).show(); 

     } 
    }; 
} 
相關問題