微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何每天早上9点在Android中运行PeriodicWorkRequest?

如何解决如何每天早上9点在Android中运行PeriodicWorkRequest?

我正在使用PeriodicWorkRequest在数据库搜索最新事件。为此,我需要每天早上9点咨询数据库。 但是我找不到办法。这是我第一次使用PeriodicWorkRequest并尝试找到解决方案,但是我只能使用Alarm Manager来找到它。但这不必是9:00。可以在上午9点到上午10点之间。甚至即使有延迟,也不会有问题。 感谢任何帮助我的人。我为我的英语感到抱歉。

我的代码

MyActivity

             //set as restrictions
            //only run when there is internet
            Constraints constraints = new Constraints.Builder().setrequiredNetworkType(NetworkType.CONNECTED).build();

            // Passing params
            Data.Builder data = new Data.Builder();
            data.putString("email",email);
            data.putString("tipo",tipo);

            PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(NotificationBackground.class,24,TimeUnit.HOURS).setConstraints(constraints).addTag("Notificacao_Eventos")
                    .setInputData(data.build()).build();


            WorkManager.getInstance(this).enqueue(periodicWork);

NotificationBackground

public class NotificationBackground extends Worker {

        public NotificationBackground(@NonNull Context context,@NonNull WorkerParameters params) {
            super(context,params);
        }

        @Override
        public Result doWork() {

            String email = getInputData().getString("email");
            String tipo = getInputData().getString("tipo");
            if(email == null || tipo==null) {
                return Result.failure();
            }

            buscarDadosBD();


            return Result.retry();
        }

        private void buscarDadosBD(){

            //just for testing,but then I'll put the code to query the database
            System.out.println("Teste");
        }
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。