ウィジェットをセットアップするときcreateView()
、メイン スレッドからメソッドを呼び出す必要があります。そうしないと、ウィジェットは「ウィジェットを読み込めませんでした」と言ってエラー ビューを取得します。
しかし、ユーザーが多くのウィジェットをインストールしている場合、ランチャーの読み込みに数秒かかることがあります。(それぞれ最大 300ms)。
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();
}
}
Ps。はい、私のランチャーはシステムアプリであり、これを行うための適切な権限があります。