为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕村9548890 2019-04-17 18:19:47
我正在设置带有约束的OneTimeWorkRequest - “ 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模拟器上工作。
查看完整描述

1 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

我只是试图从使用WorkManager样本代码实验室(使用的WorkManager v2.1.x)和它的作品时,我设置了正确的电池,并在模拟器上(我使用v29.0.9-5537588)充电状态:

https://img1.sycdn.imooc.com//5cdb7de50001c5da06480290.jpg


查看完整回答
反对 回复 2019-05-15
  • 1 回答
  • 0 关注
  • 744 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信