java - AlarmManager/BroadcastReceiver 不工作

标签 java android android-intent

我一直在尝试使用 AlarmManager 和 BroadCastReceiver 设置我的第一个警报,如下所述:http://smartandroidians.blogspot.com.es/2010/04/alarmmanager-and-notification-in.html

我的设置:

AndroidManifest.xml:

<receiver android:name="es.radiopodcastellano.player.SleepAlarm" />

我的主要 Activity onCreate(这段代码实际上驻留在一个子类中,但为了简化我把它放在那里):

@Override
    public void onCreate(Bundle savedInstanceState) {
            // <Stripped code>
    AlarmManager alarm = (AlarmManager) currentContext.getSystemService(Context.ALARM_SERVICE);
    Intent intent = new Intent(this.getApplicationContext(), SleepAlarm.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 0, intent, PendingIntent.FLAG_ONE_SHOT);
    alarm.set(AlarmManager.RTC_WAKEUP,(System.currentTimeMillis() + (5 * 1000)),pendingIntent);
}

sleep 警报.java:

public class SleepAlarm extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    Log.d("RPod_SleepAlarm","Alarm!!");
}

}

“adb shell dumpsys alarm”的输出显示了这一点,因此似乎正在调用 Intent :

  es.radiopodcastellano.player
221ms running, 32 wakeups
44 alarms: flg=0x4 cmp=es.radiopodcastellano.player/.SleepAlarm

但是,Logcat 没有显示“RPod_SleepAlarm”标签。我可能做错了什么?

最佳答案

我发现了问题。

list 上的接收器位于小部件的另一个接收器内,它必须是应用程序的子项。因此,如果您的行为与我相同,请检查您是否正确设置了 AndroidManifest.xml:

关于java - AlarmManager/BroadcastReceiver 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11171908/

相关文章:

java - 静态方法,静态变量可以在Web应用程序中被多个线程改变 - jsp

android - 如何通过点击推送通知知道应用程序是否启动

java - 如何为 Android Google Analytics 添加页面标题参数

java - 如果我为前一天设置,为什么我的 alarmManager 会立即启动?

java - 从 mainactivity 访问 searchview 查询文本

java - Android Studio 中舍入的观察结果 - java.以及一些预期的实际解释

java - 我如何(更)轻松地比较两组数字?

Android Studio - 出现错误 : java. util.zip.ZipException:只有 DEFLATED 条目可以有 EXT 描述符

java - Android:onTouchEvent启动新 Activity

java - 在 JTextField 上设置光标的水平位置