如何每天早上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 (将#修改为@)