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