2012-10-10 80 views
0

我知道這是一個基本問題,但它仍然讓我瘋狂。我正在設置一個重複鬧鐘,但接收機從不會被呼叫。廣播接收器不叫

Intent intent = new Intent(NewSchedule.this, RepeatingAlarm.class); 
PendingIntent sender = PendingIntent.getBroadcast(NewSchedule.this, 0, intent, 0); 


Calendar calendar = Calendar.getInstance(); 
calendar.setTimeInMillis(System.currentTimeMillis()); 
calendar.add(Calendar.SECOND, 10); 

AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); 
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, calendar.getTimeInMillis(), 5 * 1000, sender); 
Log.i("calendar",calendar.getTimeInMillis() + ""); 
Toast.makeText(NewSchedule.this, "repeating_scheduled", Toast.LENGTH_SHORT).show(); 


public class RepeatingAlarm extends BroadcastReceiver { 

     @Override 
     public void onReceive(Context context, Intent intent) { 
     Toast.makeText(context, "repeating_received", Toast.LENGTH_LONG).show(); 



     } 
    } 

<receiver android:name=".RepeatingAlarm" android:process=":remote" /> 

我正在測試我的手機。日曆日誌顯示確切的時間。我從來沒有在接收器類中得到Toast。

+0

'sender = new Intent(appContext,RepeatingAlarm.class)'? –

+0

試試這種方法:http://stackoverflow.com/a/7061752/801437 希望它有幫助。祝你好運 :) –

回答

0

其實它變成了我的代碼是好的。不知何故,警報已經啓動並運行,因此出於某種未知的原因(至少對我來說)收件人不能被調用。當我創建一個新項目並測試該接收器工作正常時,我想通了。我也不得不停止那個警報。然後我回到我原來的項目,並開始相同的警報,沒有改變任何線路,它工作正常。有沒有人經歷過這個?

0

參考:Android Alarm Manager with broadcast receiver

Intent sender = new Intent("WhatEverYouWant"); 
PendingIntent senderPIntent = PendingIntent.getBroadcast(context, 0, sender, 0); 
AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
alarm.set(AlarmManager.RTC_WAKEUP, triggerTime, senderPIntent); 

// In Manifest.xml file 
<receiver android:name="com.package.YourOnReceiver"> 
    <intent-filter> 
     <action android:name="WhatEverYouWant" /> 
    </intent-filter> 
</receiver>