如何在每个指定的时间(例如每天5AM)执行一个动作(也许是一个意图)?它必须在设备重新启动后保留,类似于cron的工作方式。如何在Android中设置持久性/常规计划?
我不确定我是否可以使用AlarmManager
这个,或者我可以吗?
如何在每个指定的时间(例如每天5AM)执行一个动作(也许是一个意图)?它必须在设备重新启动后保留,类似于cron的工作方式。如何在Android中设置持久性/常规计划?
我不确定我是否可以使用AlarmManager
这个,或者我可以吗?
如果您希望在设备重新启动后保留它,您必须在设备重新引导后安排警报。
你需要有RECEIVE_BOOT_COMPLETED许可,您的AndroidManifest.xml
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
一个BroadcastReceiver同样也需要捕捉的意图ACTION_BOOT_COMPLETED
<receiver android:name=".BootCompletedReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
最后,在覆盖的onReceive方法你广播接收器。
public class BootcompletedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//set alarm
}
}
编辑:看AlarmManager的setRepeating方法来安排 '的Android的cron'。
如果您的应用程序被用户或Android系统杀死,那么这将无济于事。一旦这样做,您的警报就会被取消注册,而且您将永远不会再被调用。 – Guy 2012-12-17 20:13:11
使用BuzzBox SDK你可以安排在App cron作业做:
SchedulerManager.getInstance()
.saveTask(context, "0 8-19 * * 1,2,3,4,5", YourTask.class);
其中, “0 8-19 * * 1,2,3,4,5” 是cron字符串会从上午8点到晚上7点,星期一到星期五,每小时运行一次任务。 你的任务可以是任何你想要的,你只需要实现一个doWork方法。该库将负责重新启动时的重新计划,获取唤醒锁和重试错误。
是的,你可以使用它。 – techiServices 2010-11-23 05:25:41