2012-04-07 100 views
1

對不起,如果這個問題有點誤導。如何在日曆對象中設置選擇時間?

我剛纔問了另外一個問題,並在我的幫助下得到了這個結果。這是問題。

我應該在特定時間啓動服務。現在...如果我使用Calendar對象中的當前時間立即啓動服務,但服務開始,但是當我手動設置時間時,服務不會啓動。這裏的代碼:

Calendar myCal = Calendar.getInstance(); 
    myCal.set(Calendar.HOUR_OF_DAY, 21); 
    myCal.set(Calendar.MINUTE, 4); 

    // Will use putExtras here to give service the details of which profile to activate 
    Intent intent = new Intent(Create.this, AutoBot.class); 
    PendingIntent pintent = PendingIntent.getService(Create.this, 0, intent, 0); 
    AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
    alarm.setRepeating(AlarmManager.RTC_WAKEUP, myCal.getTimeInMillis(), 5*1000, pintent); 

現在這應該在技術上工作,但它不是。這就是爲什麼我需要你的幫助:(

而且,如果我有多個觸發(報警器本身),你會setRepeating的第三個參數是什麼?

回答

0

我認爲你需要設置天月,以毫秒爲單位的日期從1970年1月1日開始

+0

但我正在使用當前日期/時間初始化日曆對象。爲什麼我需要改變它?你可以解釋一下我需要放入Calendar.DATE/YEAR嗎? – Asim 2012-04-07 18:40:34

0

我認爲這個鏈接可能會回答你的問題,它解釋了在警報管理器保持喚醒鎖定的系統中有一個限制 交付服務。請參閱此討論:http://groups.google.com/group/android-developers/browse_thread/thread/2b98206d18a0192f/

希望這有助於。

+0

如果我使用實際當前時間(使用Calendar.getInstance,然後使用該日曆獲取當前時間),代碼將正常工作。但是,當我創建另一個日曆並嘗試手動設置其時間時,代碼拒絕工作。 – Asim 2012-04-07 22:34:19

+0

正如Android工程師在上面引用的文章中解釋的那樣,使用警報管理器啓動服務的機制並不可靠。這篇文章解釋了一個更可靠的方法來實現這一點。 – 2012-04-09 13:39:47

相關問題