gpt4 book ai didi

android - 为什么每次添加应用程序小部件时都会创建 AppWidgetProvider?

转载 作者:太空狗 更新时间:2023-10-29 16:25:19 25 4
gpt4 key购买 nike

我对 android 的 AppWidget 机器是如何工作的有点困惑。

我像这样重新实现了 AppWidgetProvider 的构造函数:

public class MyProvider extends AppWidgetProvider {

public MyProvider() {
Log.d("TEST", "Creating...")
}

public void onUpdate(..., int[] appWidgetIds) {
// updating stuff here
}
}

根据我在文档中阅读的内容,我了解到当第一次添加该类型的小部件时,AppWidgetProvider 被实例化一次。如果添加了另一个相同类型的小部件,它将完全由该提供者管理。

但是我才发现不是这样的!

对于我添加的每个小部件,android 都会创建一个新的 MyProvider(我从“adb logcat”中看到它 - 它会为每个小部件打印“正在创建...”)!我不明白为什么 :)也许我做错了什么?或者文档在某些方面不清楚。如果每个提供者只管理一个小部件,将 appWidgetIds 传递给 onUpdate 和其他方法的原因是什么?

最佳答案

AppWidgetProviderBroadcastReceiver 的子类。引用 BroadcastReceiver documentation :

A BroadcastReceiver object is only valid for the duration of the call to onReceive(Context, Intent). Once your code returns from this function, the system considers the object to be finished and no longer active.

因此,AppWidgetProviders 是一次性的,应该这样对待。每个应用小部件操作(更新等)都会导致创建、使用和丢弃提供程序。

关于android - 为什么每次添加应用程序小部件时都会创建 AppWidgetProvider?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3246627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com