我正在运行一个工人一目了然,可组合在android上。
为什么在无限循环中不断调用onReceive?
我在这里错过了什么?
class MyWidget : GlanceAppWidget() {
@Composable
override fun Content() {
val work = OneTimeWorkRequest.Builder(MyWorker::class.java).build()
WorkManager.getInstance().enqueue(work)
}
}
class MyWorker(
private val context: Context,
private val workerParameters: WorkerParameters
) : CoroutineWorker(context, workerParameters) {
override suspend fun doWork(): Result {
return Result.success()
}
}
class GlanceReceiver : GlanceAppWidgetReceiver() {
override val glanceAppWidget: GlanceAppWidget
get() = MyWidget()
override fun onReceive(context: Context, intent: Intent) {
super.onReceive(context, intent)
}
}
//Dependencies
implementation "androidx.work:work-runtime-ktx:2.7.1" // WorkManager with Coroutines
implementation "androidx.glance:glance-appwidget:1.0.0-alpha03" //Glance发布于 2022-05-18 00:57:02
这是因为WM在没有安排工作人员的情况下禁用了启动接收器。当android应用程序禁用接收程序时,Android发送PACKAGE_CHANGED广播事件,导致调用小部件onReceive。
https://issuetracker.google.com/115575872
就目前而言,我们的建议是安排一项延迟很长时间(例如10年)的工作。我们正在研究一种改善这种情况的方法。
https://stackoverflow.com/questions/72239911
复制相似问题