16

ホーム画面のAppWidgetをプログラムで削除する方法を理解するのに最も苦労しています(つまり、ユーザーが実際にゴミ箱にドラッグしないで)。例として、複数のアカウントを持つことができ、アカウントごとにウィジェットをいくつでも持つことができるアプリを考えてみましょう。アカウントが削除されたら、ウィジェットも削除する必要があります。

http://www.netmite.com/android/mydroid/cosplay/frameworks/base/services/java/com/android/server/AppWidgetService.javaのあいまいな例に従ってみましたが、そうではないようです。 OnDeletedをトリガーすることもできますが、ホーム画面からAppWidgetを削除することはほとんどありません。

Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_DELETED);
intent.setComponent(info.componentName); // references AppWidgetProvider's class
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetId);
sendBroadcast(intent);

これをどのように達成できるかについて誰かアドバイスがありますか?例としては、ミツバチの膝があります。ありがとう。

4

2 に答える 2

29

ホーム画面からアプリウィジェットを追加または削除することはできません。ユーザーだけがそれを行うことができます。

削除されたアカウントに関連付けられたアプリウィジェットは、別のアカウントを表示したり、「(アカウントが削除された)」外観を採用したりして、ユーザーがアプリウィジェットを削除または再構成するようにトリガーする可能性があります。

于 2010-12-25T23:43:45.710 に答える
-2

私はこれがうまくいくと確信しています:

int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName("com.example",
                        "com.example.Widget"));
AppWidgetHost host = new AppWidgetHost(ctx, 0);
host.deleteAppWidgetId(appWidgetIds[0]);
于 2011-10-14T23:09:26.643 に答える