设置小部件时,我必须createView()
从主线程调用该方法,否则小部件将显示“无法加载小部件”并获取错误视图。
但是当用户安装了许多小部件时,加载我的启动器可能需要几秒钟。(每个最多 300 毫秒)。
有没有办法创建AppWidgetHostView
关闭主线程?
部分代码:
AppWidgetHost lWidgetHost = new AppWidgetHost(lContext, HOST_ID);
mWidgetId = lWidgetHost.allocateAppWidgetId();
AppWidgetManager.getInstance(lContext).bindAppWidgetId(mWidgetId, info.provider);
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
AppWidgetHostView lHostView = lWidgetHost.createView(lContext, mWidgetId, info);
addView(lHostView);
lWidgetHost.startListening();
}
}
附言。是的,我的启动器是一个系统应用程序,并且具有执行此操作的正确权限。