重启后的警报设置

时间:2014-08-27 00:32:38

标签: android broadcastreceiver android-service alarmmanager

我正在关注http://blog.blundell-apps.com/notification-for-a-user-chosen-time/这篇文章,我制作了自己的应用。所以我可以在特定的日期和时间设置闹钟。它工作正常,但一旦手机重新启动,它就会熄灭。所以我用Google搜索并了解了BroadcastReceiver。

我的接收者代码就是这个

public class StartMyServiceAtBootReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
            Intent serviceIntent = new Intent(context, NotifyService.class);
            context.startService(serviceIntent);
        }
    }
}

我在展示中有这个设置

<service
            android:name=".ScheduleService"
            android:label="ScheduleService Manager" >
        <action android:name="com.example.myapp.ScheduleService" />
        </service>

        <service
            android:name=".NotifyService"
            android:label="NotifyService Manager" >
        <action android:name="com.example.myapp.NotifyService" />
        </service>

        <receiver
            android:name="com.example.myapp.StartMyServiceAtBootReceiver"
            android:enabled="true"
            android:exported="true"
            android:label="StartMyServiceAtBootReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>

我也有这个许可

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

我的BroadcastReceiver在重新启动后启动。但是,通知从未显示出来。知道为什么吗?

由于

PS:非常非常新的android:)

1 个答案:

答案 0 :(得分:1)

实际上你必须在重启后设置闹钟。简单地设置启动接收器是不够的。

你可以看到来自adb shell的即将发生的警报:

adb shell dumpsys alarm