简短版本:WorkManager在MIUI设备上不起作用! (如标题中所述)
详细版本:我已经在这个主题上搜索了好几天了,我感到很沮丧。在我的应用程序(离线工作)中,我应该在一天中的某些小时发送通知。但是,似乎根本没有适当的方法来执行此操作。我发现的最后一种方法是使用WorkManager,它似乎在大多数设备上都能正常工作(当Android O后,应用被杀死时,警报管理器根本无法工作)。但是在Xiamo设备中,WorkManager不起作用。仅当您手动允许某些功能时,WorkManager才能工作(自动启动并且没有电池优化的限制),这不是一个好的解决方案,因为它们在不同设备中的位置不同,并且对于普通用户而言很难找到。
如果您遇到相同的问题,能否告诉我如何解决? 如果无法在后台运行,WorkManager的意义是什么?!
P.S。 :打开应用程序后,Workmanager可以正常工作。它也可以在仿真器上正常工作,因此实现中没有问题。
这是我用来发送请求的代码:
PeriodicWorkRequest workRequest =
new PeriodicWorkRequest.Builder(UploadWorker.class, 24 , TimeUnit.HOURS)
.setInitialDelay(1, TimeUnit.MINUTES)
.build();
WorkManager.getInstance(getContext())
.enqueueUniquePeriodicWork("FIRST_TIMER", ExistingPeriodicWorkPolicy.REPLACE,workRequest);
答案 0 :(得分:0)
在Android 6(棉花糖)中,Google在基本的Android中引入了Doze模式,以试图在各种Android手机上统一节省电池电量。
不幸的是,一些制造商(例如小米,华为,OnePlus甚至三星..)似乎没有抓住这个机会,他们都有自己的电池保护程序,通常写得很差,仅表面上节省了电池的副作用。< / p>
请查看此答案以获取更多详细信息:https://stackoverflow.com/a/62929697/3995126