How to set a persistent/regular schedule in Android?

点点圈 提交于 2019-11-30 07:27:26

If you want it to stay after the device reboots, you have to schedule the alarm after the device reboots.

You will need to have the RECEIVE_BOOT_COMPLETED permission in your AndroidManifest.xml

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

A BroadcastReceiver is needed as well to capture the intent ACTION_BOOT_COMPLETED

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

Lastly, override the onReceive method in your BroadcastReceiver.

public class BootcompletedReceiver extends BroadcastReceiver {

  @Override
  public void onReceive(Context context, Intent intent) {
     //set alarm
  }
}

Edit: Look at the setRepeating method of AlarmManager to schedule the 'Android cron'.

Using the BuzzBox SDK you can schedule a cron job in your App doing:

SchedulerManager.getInstance()
.saveTask(context, "0 8-19 * * 1,2,3,4,5", YourTask.class);

Where "0 8-19 * * 1,2,3,4,5" is a cron string that will run your Task once an hour, from 8am to 7pm, mon to fri. You Task can be whatever you want, you just need to implement a doWork method. The library will take care of rescheduling on reboot, of acquiring the wake lock and on retrying on errors.

More info about the BuzzBox SDK here...

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!