4

我正在构建一个用于学习目的的小部件,它只是有一个配置活动,我可以在其中设置更新间隔。它工作正常,我可以创建它的多个实例。但是当我重新启动手机时,警报管理器会停止,并且小部件不会更新。经过一番搜索和 google'ng 我了解到我必须添加一个 BOOT COMPLETE 接收器,但经过几次尝试我未能实现所以任何人都知道如何在小部件上添加它或任何好的源代码示例。

4

2 回答 2

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
    }
}

有一个类似的帖子,虽然这里不完全一样。这是关于每天中午运行警报。

于 2012-11-22T11:52:40.930 回答
0

我认为您在AppWidgetProvider扩展类(小部件类)以外的类中设置警报管理器。最好在OnUpdate方法AppWidgetProvider扩展类(小部件类)中设置警报管理器,然后启动后无需再次设置警报。

于 2013-11-22T14:10:07.450 回答