1

サービスを使用して更新するウィジェットがあります。アクティビティを開くためのボタンがあります。それは完璧に動作します。ただし、ウィジェットをクリックしてアクティビティを開くと、動作または更新されない場合があります。

アプリウィジェットを殺すものは何ですか?そして、ウィジェットが死んでいるのに、なぜそれがまだ画面に表示されているのですか?別のウィジェットを作成せずにその特定のウィジェットを追体験する方法はありますか?

4

2 に答える 2

2

Androidは、メモリ不足の状況に直面するとウィジェットを停止します。次に、RAMを自動的にクリーニングした後、ホームウィジェットを再起動します。ただし、今回は、ホームウィジェットが前回とは異なるpidを取得するため、ブロードキャストに応答できません。

AlarmManagerを使用してアプリウィジェットを更新する

于 2012-06-15T18:55:12.897 に答える
0

このコードをサービスクラスに含める必要がありました。基本的に、すべてのウィジェットに更新を送信します。もう1年以上経ちました。ウィジェットのボタンは常に機能し、ウィジェットは問題なく更新されます。

int[] arrayOfInt = AppWidgetManager.getInstance(getBaseContext())
                     .getAppWidgetIds(new ComponentName(this, mywidget.class));

AppWidgetManager localAppWidgetManager = AppWidgetManager.getInstance(this);

new WebView().onUpdate(getBaseContext(), localAppWidgetManager, arrayOfInt);

int i = arrayOfInt.length;
for (int j = 0;; j++) {
    if (j >= i)
        return;
    int k = arrayOfInt[j];
    RemoteViews localRemoteViews = new RemoteViews(getBaseContext()
                                       .getPackageName(), R.layout.xx);
    localRemoteViews.setTextViewText(R.id.tv, tv_text);

    localRemoteViews.setOnClickPendingIntent(
        R.id.Button01,
        PendingIntent.getActivity(getBaseContext(), 0, new Intent(
            getBaseContext(), LicenseCheck.class), 1));
    localAppWidgetManager.updateAppWidget(k, localRemoteViews);
}
于 2014-02-21T15:57:24.233 に答える