在我的应用中,我使用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");
}
}
这个概念是,对于每个周期性的时间,必须重复函数求和。
如何实现?