【发布时间】:2020-03-24 22:47:17
【问题描述】:
我正在开发一个从 rest api 获取数据的应用程序,所以基本上我为此实现了 WorkManager,我希望数据每 15 分钟刷新一次,所以我将间隔的最小值设置为 15 分钟,我设置了我的 workmanager 类,在其中我向我的 api 发出请求,并将该类传递给 PeriodicTimeRequest ,现在我不知道在发起请求后我将如何将数据设置到我的 recyclerview
这是我的 WorkManager 类
public class WorkManager extends Worker {
public static List<Movie> list;
public WorkManager(@NonNull Context context, @NonNull WorkerParameters workerParams) {
super(context, workerParams);
}
@NonNull
@Override
public Result doWork() {
getData();
return Result.success();
}
public void getData() {
RetrofitBuilder.getData().getTopRatedMovies(Utils.apikey, Utils.language, 1)
.enqueue(new Callback<Movie>() {
@Override
public void onResponse(Call<Movie> call, Response<Movie> response) {
if (response.isSuccessful()) {
list = response.body().getMovies();
}
}
@Override
public void onFailure(Call<Movie> call, Throwable t) {
Log.d("TODO", "Excep" + t.toString());
}
});
}
这是我活动中的 PeriodicTimeRequest
Constraints constraints = new Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.build();
PeriodicWorkRequest periodicWorkRequest = new PeriodicWorkRequest.Builder(WorkManager.class,
15, TimeUnit.MINUTES)
.setConstraints(constraints)
.build();
androidx.work.WorkManager.getInstance(MainActivity.this).enqueueUniquePeriodicWork("tags",
ExistingPeriodicWorkPolicy.KEEP,periodicWorkRequest);
所以我基本上想每 15 分钟从 api 更新一次数据,然后我想获取数据并将其推送到我的 recyclerview ,我是否使用了正确的方法,谢谢你们。
【问题讨论】:
-
您是否成功设置了WorkerManger?
标签: android