BroadcastReceiver仅针对一个动作触发

时间:2015-07-07 14:34:34

标签: android broadcastreceiver

所以我遇到以下情况:我想在 x 间隔之后安排警报重复。应在用户登录应用程序但未注销时安排此警报。

预期的行为是:在设备启动时安排警报(如果用户尚未注销)。或者,在用户登录时安排警报。这样可以确保即使用户重新启动设备,警报仍会触发。

我使用我在Manifest中声明的自定义接收器来实现这个:

<receiver
    android:name=".notifications.AlarmBootReceiver"
    android:enabled="false">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
    </intent-filter>
    <intent-filter>
        <action android:name="com.example.START_ALARMS"/>
    </intent-filter>
</receiver>

这在设备启动后安排闹钟时效果很好。

问题:当我尝试触发此接收器时:

Intent newIntent = new Intent("com.example.START_ALARMS");
sendBroadcast(newIntent);

绝对没有任何反应!

接收器工作,这是肯定的,否则警报不会在启动时触发。 我也确保通过以下方式启用接收器:

 ComponentName receiver = new ComponentName(this, AlarmBootReceiver.class);
 PackageManager pm = this.getPackageManager();

 pm.setComponentEnabledSetting(receiver,
            PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
            PackageManager.DONT_KILL_APP);

我无法弄清楚我错过了什么,所以任何帮助都会非常感激。

0 个答案:

没有答案