1

それぞれに 3 つのタブと 3 つのフラグメントがあります。フラグメントの 1 つでサービスを実行しています。そのサービスのブロードキャスト レシーバーがフラグメントにあるため、サービスはネットワークからメッセージを受信し、フラグメントを更新しています。サービスの実行を維持したい特定のタブが選択されているかどうかにかかわらず、常にフラグメントを更新します。サービスを停止せずにタブを変更すると、アプリがクラッシュします。また、私の主な活動ActionBar.TabListenerには`があります

public void onTabUnselected(Tab tab, FragmentTransaction ft) {
                 ft.remove(fragment);
                //ft.hide(fragment);
            }

`どうやってこれを達成するのを手伝ってください??

4

1 に答える 1

1

タブを変更すると、それFragmentは破棄され、そのフラグメントのビューも同様に破棄されます。その を更新することはできなくなりますFragment

この問題には別の方法でアプローチする必要があります。

  1. Serviceが取得しているものを何らかの方法でキャッシュし、Fragmentが作成されると、キャッシュから最新のデータを取得して表示します
  2. (同様)Service「データ」を継続的に取得して 内に保存するバインドを使用します。作成されServiceたらFragment、 にバインドしてServiceそのデータを取得します。
于 2013-09-06T10:05:35.477 に答える