ウィジェットをセットアップするとき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。はい、私のランチャーはシステムアプリであり、これを行うための適切な権限があります。