2016-06-07 101 views
0

我有一個public class AlarmReceiver extends BroadcastReceiver和具有以下部分活動在其onCreate廣播接收器不觸發

Intent intent = new Intent(this, AlarmReceiver.class); 
    pintent = PendingIntent.getBroadcast(this, 0, intent, 0); 
    AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 
     alarm.setExact(AlarmManager.RTC, Calendar.getInstance().getTimeInMillis() + 5000, pintent); 
    } else { 
     alarm.set(AlarmManager.RTC, Calendar.getInstance().getTimeInMillis()+5000, pintent); 
    } 

因此,執行該代碼後,我的AlarmReceiver應該叫5秒的onReceive方法,應該不會吧?但事實並非如此,我等了幾分鐘,但沒有任何反應。是的,我已將<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>添加到我的清單中。 (我的手機執行setExact

+0

你有沒有在清單中所列的接收器?另外,你不需要'SET_ALARM'權限。 –

+0

啊當然...忘了那個。可惜的是,這並沒有給我一個錯誤,比如當我嘗試開始一個沒有在那裏列出的活動時。爲什麼我不需要許可?那是什麼? – Ginso

+0

使用'Intent'設置鬧鐘應用需要'SET_ALARM'權限。看看[這裏](https://developer.android.com/reference/android/provider/AlarmClock.html)。 –

回答

0

確保您已正確創建廣播接收器的最簡單方法是通過上下文菜單添加廣播接收器。這樣,接收器也將相應地添加到清單中。

Adding a new broadcastreceiver Adding a new broadcastreceiver#2