小编San*_*Lee的帖子

WorkManager doWork 被解雇两次

我的目标是每小时运行一次简单的任务。在应用程序启动时,我使用ExistingPeriodicWorkPolicy.KEEP标志注册一个独特的定期工作。

这是我的实现:

public class MyWorker extends Worker {

    public MyWorker(Context context, WorkerParameters workerParams) {
        super(context, workerParams);
        // I don't do anyting with workerParams
    }

    public static void enqueueWork() {
        Constraints constraints = new Constraints.Builder()
                .setRequiresBatteryNotLow(true)
                .build();

        PeriodicWorkRequest request = new PeriodicWorkRequest
                .Builder(MyWorker.class, 1, TimeUnit.HOURS)
                .setConstraints(constraints)
                .addTag("MyWorkerWork")
                .build();

        WorkManager.getInstance().enqueueUniquePeriodicWork("MyWorkerWork",
                ExistingPeriodicWorkPolicy.KEEP, request);
    }


    @NonNull
    @Override
    public Result doWork() {
        Log.i(TAG, "doWork");
        return Result.success();
    }
}
Run Code Online (Sandbox Code Playgroud)

我唯一打电话的地方enqueueWork()Application#onCreate

public class MyApplication extends Application {
    @Override
    public void onCreate() …
Run Code Online (Sandbox Code Playgroud)

android android-workmanager

7
推荐指数
0
解决办法
716
查看次数

liveData builder 功能解决了什么问题?

因此有一个新的构建器函数LiveData

val someLiveData = liveData {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

谁能准确解释这个新的构建器功能解决了什么问题?它如何解决轮换问题?它与 Web 服务调用有何关系?

任何意见将不胜感激。提前致谢。

android kotlin android-livedata kotlin-coroutines

5
推荐指数
1
解决办法
671
查看次数