首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么onReceive被多次调用?

为什么onReceive被多次调用?
EN

Stack Overflow用户
提问于 2022-05-14 11:51:41
回答 1查看 207关注 0票数 -1

我正在运行一个工人一目了然,可组合在android上。

为什么在无限循环中不断调用onReceive?

我在这里错过了什么?

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2022-05-18 00:57:02

这是因为WM在没有安排工作人员的情况下禁用了启动接收器。当android应用程序禁用接收程序时,Android发送PACKAGE_CHANGED广播事件,导致调用小部件onReceive。

https://issuetracker.google.com/115575872

就目前而言,我们的建议是安排一项延迟很长时间(例如10年)的工作。我们正在研究一种改善这种情况的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72239911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档