假设我有一个将targetSDKVersion设置为26的应用程序的小部件.此小部件需要100毫秒到10秒才能更新.大部分时间都在1s以下.在Android O之前,如果在我的AppWidgetProvider上调用了onUpdate(),我可以启动后台服务来更新这个小部件.但是,如果您尝试该行为,Android O将返回IllegalStateException.启动前台服务的显而易见的解决方案似乎是一种极端的措施,可以在99%的时间内在10秒以内完成.
可能的解决方案
我个人并不喜欢上述任何一种解决方案.希望我错过了一些东西.
(更令人沮丧的是,我的应用程序已经被系统调用onUpdate()加载到内存中.我没有看到如何将我的应用程序加载到内存中以调用onUpdate(),但后来没有给我的应用程序1s更新小部件UI线程正在为任何人节省电池寿命.)
multithreading android widget background-process android-8.0-oreo