我正在关注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:)
答案 0 :(得分:1)
实际上你必须在重启后设置闹钟。简单地设置启动接收器是不够的。
你可以看到来自adb shell的即将发生的警报:
adb shell dumpsys alarm