在固定时间运行服务

时间:2014-07-04 08:06:47

标签: android android-manifest manifest android-alarms

我正在关注this

但我不想每次都重新启动手机以更新 REPEAT_TIME 。我在清单上有一些奇怪的东西

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

<receiver android:name="MyScheduleReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>

我不希望在我的应用上与BOOT相关的任何内容。我能做什么? 修改 当我完全卸载应用程序并尝试运行它。该服务不会开始。我需要重新启动手机并再次运行它。为什么这样? 我不想重新启动手机

2 个答案:

答案 0 :(得分:1)

添加

    <receiver android:name=".MyScheduleReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>

到您的清单将确保在Android设备重新启动时调用MyScheduleReceiver

至于为什么你可能需要这个:

如果您使用AlarmManager设置警报来安排某些事情,那么当您的手机关机时,Android会终止您的警报,因此您需要在手机重启时再次设置警报。然后,您可以在MyScheduleReceiver

中执行此操作

答案 1 :(得分:1)

您的问题不明确,您发布的链接中的教程实际上非常广泛,因此您不清楚自己要做什么。

根据您的问题,我只能假设您正在尝试使用AlarmManager创建警报以定期启动Service

在这种情况下,您应该知道在关闭/重新启动设备时会删除警报。这意味着在设备重新启动时使用BroadcastReceiver重新创建任何警报是正常的。

如果设备未关闭电源,则无需执行任何操作即可保留重复警报。