如何从服务中分段调用方法?

时间:2019-08-21 17:59:32

标签: android service fragment job-scheduling

在我的应用中,我使用JobScheduler通过setPeriodic函数在一段时间内运行任务。

如何从Scheduler Service中调用Fragment中的方法?

WeeklyJobService.java

  @Override
    public boolean onStartJob(JobParameters params) {
        doBackgroundWork(params);

        return true;
    }

    private void doBackgroundWork(JobParameters params) {

        // Here I want to call a method in Fragment
        jobFinished(params, false);
        }).start();
    }

TopWeekFragment.java

例如,让函数将两个数字相加并在TextView中设置值

 private void sum()
    {
        int i=22, j=10;
        textview.setText(String.valueOf(i+j));
    }

JobSchedule函数

private void scheduleJob(View v) {
        @SuppressLint("JobSchedulerService")
        ComponentName componentName = new ComponentName(Objects.requireNonNull(getActivity()), WeeklyJobService.class);
        JobInfo info = new JobInfo.Builder(123, componentName)
                .setRequiresCharging(true)
                .setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED)
                .setPersisted(true)
                .setPeriodic(15 * 60 * 1000)
                .build();

        JobScheduler scheduler = (JobScheduler) getActivity().getSystemService(JOB_SCHEDULER_SERVICE);
        int resultCode = scheduler.schedule(info);
        if (resultCode == JobScheduler.RESULT_SUCCESS) {
            Log.d(TAG, "Job scheduled");
        } else {
            Log.d(TAG, "Job scheduling failed");
        }
    }

这个概念是,对于每个周期性的时间,必须重复函数求和。

如何实现?

0 个答案:

没有答案