小编rek*_*yde的帖子

CallbackToFutureAdapter 中的调用是在第二次重建项目时执行的

我在使用 ListenableFuture 时遇到了问题,这是整个代码

主活动.java:

package com.example.app16;

import android.os.Bundle;
import android.view.View;

import androidx.appcompat.app.AppCompatActivity;
import androidx.work.Configuration;
import androidx.work.OneTimeWorkRequest;
import androidx.work.WorkManager;

public class MainActivity extends AppCompatActivity {
    WorkManager w;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        WorkManager.initialize(this, new Configuration.Builder()
                .setMinimumLoggingLevel(android.util.Log.INFO)
                .build());
        w = WorkManager.getInstance(getApplicationContext());

        OneTimeWorkRequest j = new OneTimeWorkRequest.Builder(lWorker.class).build();
        w.enqueue(j);
    }

    public void click(View view) {
        w.cancelAllWork();
    }
}
Run Code Online (Sandbox Code Playgroud)

lWorker.java:

package com.example.app16;

import android.content.Context;
import android.util.Log;

import androidx.annotation.NonNull;
import androidx.concurrent.futures.CallbackToFutureAdapter;
import androidx.work.ListenableWorker;
import androidx.work.WorkerParameters;

import com.google.common.util.concurrent.ListenableFuture;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response; …
Run Code Online (Sandbox Code Playgroud)

multithreading android garbage-collection worker android-studio

8
推荐指数
0
解决办法
974
查看次数

WorkManager 不会按需初始化

我阅读了这些说明:https : //developer.android.com/topic/libraries/architecture/workmanager/advanced/custom-configuration#on-demand 现在我有一个 MyApplication 类,但我不明白如何使用它和我在任何地方都找不到明确的说明

请求WorkManager.getInstance时,自然会产生错误,因为MyApplication类在任何地方都没有使用。我无法理解如何为 WorkManager 激活此类。

AndroidManifest.xml

<provider
  android:name="androidx.work.impl.WorkManagerInitializer"
  android:authorities="${applicationId}.workmanager-init"
  tools:node="remove"
  android:exported="false" />
Run Code Online (Sandbox Code Playgroud)

MyApplication.java:

public class MyApplication extends Application implements Configuration.Provider {
    @NonNull
    @Override
    public Configuration getWorkManagerConfiguration() {
        return new Configuration.Builder().
        setExecutor(Executors.newFixedThreadPool(5)).build();
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要准确地解决这个问题,所以我会很感激你的好帮助。如何使按需初始化工作?

java android android-workmanager

3
推荐指数
1
解决办法
893
查看次数