我正在构建一个用于学习目的的小部件,它只是一个配置活动,我设置更新间隔。它工作正常,我可以创建它的多个实例。 但是当我重新启动手机时,警报管理器会停止,并且小部件将不会更新。 经过一些搜索和google'ng我了解到我必须添加一个BOOT COMPLETE接收器 但经过几次尝试后我没有实现,所以任何人都有关于如何在小部件上添加或任何好的源代码示例的想法。
答案 0 :(得分:7)
要在启动时执行某些操作,您只需执行以下操作即可。
首先在manifest
中,这是在应用标记下添加的:
<receiver android:name="AlarmReceiver">
<intent-filter>
<action android:name="packagename.ACTION"/>
<action android:name="packagename.ACTION2"/>
</intent-filter>
</receiver>
<receiver android:name="BootSetter" >
<intent-filter>
<action
android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
为了使其正常工作,您需要添加权限以使用以下行在清单中接收广播:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
然后你有一个类BootSetter:
public class BootSetter extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Do your stuff
}
}
有一个类似的帖子,虽然不完全相同here。这是关于每天中午发出警报。
答案 1 :(得分:0)
我认为你在AppWidgetProvider
扩展类(widget类)之外的类中设置了警报管理器。更好的是你应该在 OnUpdate 方法AppWidgetProvider
扩展类中设置一个警报管理器(小部件类)然后在启动后不需要再次设置警报。