2011-12-12 77 views
-1

我創建壓延對象和代碼如下:爲什麼重複報警不工作?

Intent intent=new Intent(ListDemoActivity.this, Demo1.class); 
PendingIntent pi =PendingIntent.getBroadcast(ListDemoActivity.this, 0, intent,0); 
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); 
Calendar calendar = Calendar.getInstance(); 
calendar.setTimeInMillis(System.currentTimeMillis()); 
calendar.set(Calendar.HOUR_OF_DAY,8); 
calendar.set(Calendar.MINUTE,0); 
calendar.set(Calendar.SECOND,2); 
Log.d("Test", "Current time: " + System.currentTimeMillis()); 
Log.d("Test", "Calendar time: " + calendar.getTimeInMillis()); 
//calendar.add(Calendar.SECOND,8); 
am.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),10*1000,pi); 

我第一次嘗試每隔10秒後,以觸發報警但報警觸發一次。 我還打印了當前時間和添加後的新時間,但當前時間大於新的時間。

12-12 12:57:29.506: D/Test(783): Current time: 1323674849507 
12-12 12:57:29.506: D/Test(783): Calendar time: 1323657002506 

爲什麼代碼不工作?

回答

0

您需要在PendingIntent對象創建時間中設置標誌。

PendingIntent pi =PendingIntent.getBroadcast(ListDemoActivity.this, 0, intent,PendingIntent.FLAG_UPDATE_CURRENT); 
+0

我試過這一個,但仍然只有一次警報觸發。 這裏我試圖每2秒重複一次警報,但不工作。 –

+0

您是否更改日曆時間? – Pratik

+1

我只想每10秒鐘重複一次警報。現在我剛剛創建了日曆對象並使用了calendar.add(Calendar.SECOND,10); PendingIntent pi = PendingIntent.getService(ListDemoActivity.this,0,intent,PendingIntent.FLAG_UPDATE_CURRENT); am.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),10 * 1000,pi); 但仍然只有一次觸發警報。爲什麼會發生這種情況?或者我的code.plz有什麼問題幫助我。 –

2

如果您正在使用的廣播reciever捕捉掛起的意圖然後確保你已經加入此行您的清單

<receiver android:name="com.example.YourReceiver" android:enabled="true" android:process=":remote"></receiver> 
1

嘿,我得到了解決辦法其實我正在執行的代碼在活動等等它沒有工作。 我試過那個服務類,現在它的工作。