手机重启后恢复闹钟管理器

4

我正在制作一个小型的小部件,用于学习目的,它只有一个配置活动,我可以在其中设置更新间隔。它正常工作,我可以创建多个实例。 但是,当我重新启动手机时,闹钟管理器停止了,小部件无法更新。 经过一番搜索和谷歌,我了解到我需要添加一个BOOT COMPLETE接收器。 但是,在几次尝试后,我未能成功实现,是否有人知道如何添加或者有关小部件的好的源代码示例?


定义“未能实现”。http://whathaveyoutried.com? - njzk2
你所说的“我未能实现”,能否详细说明一下? - Praful Bhatnagar
我尝试添加类似于Warpitz回答的启动完成接收器,但它没有起作用...我没有太多时间完全理解闹钟管理器的概念,因为时间不够,所以尝试了一些从搜索中得到的代码,但都没有起作用。 - user1844755
@user1844755 我忘记在清单文件中添加一个权限,现在已经添加了,所以应该可以正常工作了。 - Warpzit
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
    }
}

这里有一篇相似的帖子,虽然不完全相同在这里。它是关于每天中午运行闹钟的。


我遇到了在onRecieve中的问题...我需要在那里放置什么代码来重新激活所有实例的闹钟? - user1844755
@user1844755 你需要将闹钟保存在sharedpreference或其他持久性存储中,然后再次设置它们,是的,每一个都要设置。就像你第一次设置它们一样。 - Warpzit

0

我认为你正在设置一个闹钟管理器在继承自AppWidgetProvider的其他类中(小部件类)。最好在AppWidgetProvider继承类(小部件类)的OnUpdate方法中设置一个闹钟管理器,这样就不需要在启动后再次设置闹钟了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接