adi*_*adi 9 android workmanagers android-workmanager androidx
我想在应用程序启动时从服务器下载某些文件。所以我尝试使用工作管理器,它从我的自定义应用程序类中排队。但是 Worker 类没有被触发,状态只是入队,不会进入运行状态.下面是我的代码:
应用类:
@Override
public void onCreate() {
Constraints constraints = new Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
//.setRequiresStorageNotLow(true)
//.setRequiresBatteryNotLow(true)
.build();
OneTimeWorkRequest request = new OneTimeWorkRequest
.Builder(MyWorker.class)
//.setConstraints(constraints)
//.setInitialDelay(1,TimeUnit.SECONDS)
.addTag("download")
.build();
WorkManager.getInstance(getApplicationContext()).getWorkInfoByIdLiveData(request.getId()).observeForever(new Observer<WorkInfo>() {
@Override
public void onChanged(WorkInfo workInfo) {
if (workInfo == null) {
Log.d("download", "workInfo == null");
} else {
Log.d("download", "workInfo != null: " + workInfo.getState().toString());//This is giving ENQUEUED once..thats it
}
}
});
WorkManager.getInstance(getApplicationContext()).enqueue(request);
}
Run Code Online (Sandbox Code Playgroud)
我的工人类
public class MyWorker extends Worker {
public MyWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
super(context, workerParams);
}
@NonNull
@Override
public Result doWork() {
//Some file to download
}
}
Run Code Online (Sandbox Code Playgroud)
构建.gradle:
implementation "androidx.work:work-runtime:2.3.2"
Run Code Online (Sandbox Code Playgroud)
我尝试过的事情:
我尝试添加一个间隔并删除约束,但是 MyWorker 也没有被触发。
我看过很多 SOF 帖子,如下所示,但它对我没有帮助:
| 归档时间: |
|
| 查看次数: |
5755 次 |
| 最近记录: |