对于Android的AppWidget机器如何工作,我感到不知所措。为什么每次添加应用程序小部件时都会创建AppWidgetProvider?
我重新实现了的AppWidgetProvider的构造是这样的:
public class MyProvider extends AppWidgetProvider {
public MyProvider() {
Log.d("TEST", "Creating...")
}
public void onUpdate(..., int[] appWidgetIds) {
// updating stuff here
}
}
从我的文档读过,我明白的AppWidgetProvider被实例化一次,当添加首次这种类型的部件。如果类型的另一个小部件相同类型被添加,它将由该提供者管理。
但我刚发现情况并非如此!我创建了一个新的MyProvider(我从'adb logcat'中看到 - 它为每个部件打印“Creating ...”)! 我不小心为什么:) 也许我有什么问题?或者文件不清楚的东西。 如果每个供应商只管理一个小部件,appWidgetId传递给 onUpdate和其他方法的原因是什么?
我相信AppWidgetManager被实例化一次,AppWidgetProvider会为每个添加的小部件实例创建。您在文档中的哪里看到应用程序小部件提供程序仅创建一次,我无法在其中找到该信息? – 2010-07-14 13:56:49
我只是假设,因为我看到了appWidgetIds参数:) 我认为“如果它总是等于1,它有什么意义”。 谢谢。还请看下面的答案,伙计们是对的 – dimsuz 2010-07-15 08:08:00