2

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

4

1 に答える 1