gpt4 book ai didi

java - WorkManager 约束(setRequiresCharging)在模拟器上不起作用

转载 作者:行者123 更新时间:2023-12-01 14:28:07 25 4
gpt4 key购买 nike

我正在设置 一次性工作请求 有一个约束-“ setRequiresCharging ”但是当我将电池状态从放电切换到充电时,这个工作请求不会调用 doWork 方法。

这个问题存在于模拟器上,并且在我的真实设备上运行良好,所以我认为它可能不适用于所有设备。

public class MainActivity extends AppCompatActivity {

WorkManager mWorkManager;
public static final String TAG="MainActivityTag";

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

mWorkManager = WorkManager.getInstance();
setupWorkRequest();
}

private void setupWorkRequest() {
Log.d(TAG, "setupWorkRequest: " + "setting request");
// Create charging constraint
Constraints constraints = new Constraints.Builder()
.setRequiresCharging(true)
.build();
OneTimeWorkRequest chargerListen = new OneTimeWorkRequest
.Builder(ChargerListener.class)
.setConstraints(constraints)
.build();
mWorkManager.enqueue(chargerListen);
}
}
public class ChargerListener extends Worker {

private static final String TAG = "ChargerListenerTag";

public ChargerListenerWork(Context context, WorkerParameters workerParams){
super(context, workerParams);
}

@NonNull
@Override
public Result doWork() {
Log.d(TAG, "doWork: "+"Charger Connected");
// do some work when connected
return Result.success();
}
}

在 logcat 中,我希望充电器已连接,它适用于我的三星设备,但不适用于 android 模拟器。

最佳答案

我刚刚尝试了 codelab 中的 WorkManager 示例。 (使用 WorkManager v2.1.x),当我在模拟器上设置正确的电池和充电状态时它可以工作(我使用的是 v29.0.9-5537588):

enter image description here

关于java - WorkManager 约束(setRequiresCharging)在模拟器上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56130621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com