Android 广播接收器未被警报调用

Android 广播接收器未被警报调用,android,broadcastreceiver,alarmmanager,Android,Broadcastreceiver,Alarmmanager,有很多相关的问题,我相信我都读过两遍左右。不知什么原因,我的眼睛上好像有西红柿。我看不出有什么错误 我用闹钟管理器设置了一个闹钟。(如果需要,很乐意分享更多代码。) getContext()返回对应用程序的引用 public static void setAlarmFromNow() { AlarmManager manager = (AlarmManager) getContext().getSystemService(Context.ALARM_SERVICE);

有很多相关的问题,我相信我都读过两遍左右。不知什么原因,我的眼睛上好像有西红柿。我看不出有什么错误

我用闹钟管理器设置了一个闹钟。(如果需要,很乐意分享更多代码。)

getContext()
返回对应用程序的引用

   public static void setAlarmFromNow() {

      AlarmManager manager = (AlarmManager) getContext().getSystemService(Context.ALARM_SERVICE);

      PendingIntent intent = createPendingIntent();

      // First cancel any ongoing alarm
      manager.cancel(intent);

      manager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()
            + (5 * 1000), intent);

      Log.d("BigBen", "Alarm is set!");

   }
警报已正确登记。这是的输出的摘录

adb外壳转储系统警报

Batch{2f6ac936 num=1 start=68344020 end=68344020}:
  RTC_WAKEUP #0: Alarm{f8a5037 type 0 when 1453976393037 de.klecker.bigben}
    tag=*walarm*:de.klecker.BigBen.Alarm
    type=0 whenElapsed=+4s155ms when=2016-01-28 11:19:53
    window=-1 repeatInterval=0 count=0
    operation=PendingIntent{3df19a4: PendingIntentRecord{18a6130d de.klecker.bigben broadcastIntent}}
事实上它被解雇了。这是日志的摘录:

01-28 11:19:53.038 V/AlarmManager(  885): sending alarm {18a6130d type 0 *walarm*:de.klecker.BigBen.Alarm}

01-28 11:19:53.039 V/AlarmManager(  885): done {18a6130d, *walarm*:de.klecker.BigBen.Alarm} [1ms]
但接线员没有接到电话。这是接收器类:

public class BigBenAlarm extends BroadcastReceiver {

   @Override
   public void onReceive(Context context, Intent intent) {

      Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
      vibrator.vibrate(2000);
      Log.d("BigBen", "Alarm fired!!!");
   }

}
日志上既不显示log语句,也不振动手机。(清单中声明了虚拟振动许可)。我尝试过祝酒、播放声音和设置断点,但显然,该方法从未被调用

以下是接收人的注册方式:

AndroidManifest.xml:
<receiver android:name="de.klecker.bigben.BigBenAlarm">
    <intent-filter>
        <action android:name="de.klecker.BigBen.Alarm"/>
    </intent-filter>
</receiver>
AndroidManifest.xml:

那么,我遗漏了哪些重要的细节

感谢所有努力过的人。 是的,我的眼睛上有西红柿。虽然很尴尬,但我还是把这个留在这里,并提供一个答案,以防其他人遇到同样的问题

最大的错误在android清单中。接收器需要在应用程序标签中注册

AndroidManifest.xml: 
<application
    android:name=".BigBenApp"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="Big Ben"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    >
    <activity android:name=".BigBenActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

    <receiver android:name="de.klecker.bigben.BigBenAlarm"
              android:enabled="true" >
        <intent-filter>
            <action android:name="de.klecker.BigBen.Alarm"/>
        </intent-filter>
    </receiver>

</application>
AndroidManifest.xml:

出于某种原因,我关闭了应用程序,然后尝试注册接收者

@MD道歉。是的。我将把这行代码添加到问题中。同时删除
manager.cancel(intent)我将尝试删除
管理器。取消(意图)尽管有文档记录,但不应造成任何伤害。相反地。如日志所示,警报实际上已触发。请尝试设置另一个选项
alarmManager.setInexactRepeating(alarmManager.Appeased\u REALTIME
删除
manager.cancel(意图)
不进行更改,也不进行更改。同样,警报已正确注册并实际触发。请参阅日志声明。
您的问题与大尺寸番茄或比萨饼一样大
我很高兴目前没有问题大小限制。此处的讨论非常有助于排除问题并最终确定下来。
AndroidManifest.xml: 
<application
    android:name=".BigBenApp"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="Big Ben"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    >
    <activity android:name=".BigBenActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

    <receiver android:name="de.klecker.bigben.BigBenAlarm"
              android:enabled="true" >
        <intent-filter>
            <action android:name="de.klecker.BigBen.Alarm"/>
        </intent-filter>
    </receiver>

</application>