小编Shu*_*har的帖子

安排android中的作业在特定时间运行

我有一个Android应用程序需要每隔午夜将备份数据发送到我的云服务器.为此,我需要安排每24小时一次的工作.我已经阅读了有关AlarmManagerJobScheduler类的信息,可以有效地安排你的工作.

在我的情况下,我使用的是JobScheduler类,这里是我的scheduleJob()方法,它将作业设置为每隔86400000毫秒(即一天)后安排.

@RequiresApi(api =Build.VERSION_CODES.LOLLIPOP)
public void scheduleJob(View v){
    JobInfo.Builder builder = new JobInfo.Builder(1,new ComponentName(this,JobSchedule.class));
    builder.setPersisted(true);
    builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
    builder.setPeriodic(86400000);
    builder.setRequiresCharging(false);
    builder.setRequiresDeviceIdle(false);
    builder.setBackoffCriteria(10000,JobInfo.BACKOFF_POLICY_EXPONENTIAL);

    int test = jobScheduler.schedule(builder.build());
    if(test <= 0){
        //sth went wrong
    }

}
Run Code Online (Sandbox Code Playgroud)

我的问题是,从哪里以及如何实现jobSchedule()以便我可以让脚本在午夜12点运行.

另外,如果我从Android的Activity XYZ的onCreate()方法调用scheduleJob方法,那么每次 调用Activity XYZ时,都会调用它的覆盖方法onCreate()并调度另一个作业.那么我应该做什么,从哪里安排工作,以便在应用程序的整个生命周期内只安排一项工作?

总结一个例子,Whatsapp每天凌晨2点备份数据.即使我关闭了网络连接,它也会在我上线后立即备份我的数据.我想在我的应用程序中实现类似的功能.

android

5
推荐指数
1
解决办法
1450
查看次数

标签 统计

android ×1