【发布时间】:2010-07-14 13:37:13
【问题描述】:
我对 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 和其他方法的原因是什么?
【问题讨论】:
-
我相信 AppWidgetManager 被实例化一次,AppWidgetProvider 将为每个添加的小部件实例创建。您在文档中的哪个位置看到应用小部件提供程序仅创建一次,我在其中找不到该信息?
-
我只是假设因为我看到了 appWidgetIds 参数 :) 我想“如果它总是等于 1 有什么意义”。谢谢你。另请参阅下面的答案,伙计们是对的
标签: android widget android-widget