2011-12-17 12 views
2

私のアプリケーションのためにthisチュートリアルに従っています。TabGroupActivityの子アクティビティの状態を維持する

私は: タブ1:Tabgroupactivity1>(startchildactivity)MainActivty>(startchildactivity)ListActivity>(startchildactivity)DetailActivity

同様にIは、他の2つのタブを有します。

次のいずれかのアクティビティから前のアクティビティに戻ると、前のアクティビティから再開します。

私はあまりにも

をSINGLE_TOPとSINGLE_TASKで活動をstartchildしようとしましたが、この だけ二時間、私は流れて行くことができる

一度それは、次の呼び出しません(次の/子)活性を持っています

それでは、子アクティビティを呼び出して戻ってくる間、どのように現在のアクティビティ状態を維持できますか?私はlistactivtyの以下の趣旨のonclickを使用しています

Intent myintent = new Intent(getParent(),Second.class); 
myintent.putExtra("id",favadapter.getItem(position).id.toString()); 
TabGroupActivity parentFav = (TabGroupActivity)getParent(); 
parentFav.startChildActivity("FavActivity", myintent); 
+0

は、適切な理解のために、あなたのコードを貼り付けます。 – RobinHood

+0

あなたは解決策を得ました –

答えて

2

実際TabGroupActivityは、Android 2.1と2.2で問題を持って、適切にスタックから削除されない活動が毎回再起動するために私たちのインスタンスが発生します。

子仕上げで、私たちはこのように、

Intent lastIntent = manager.getActivity(lastId).getIntent(); 
     Window newWindow = manager.startActivity(lastId, lastIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)); 
     setContentView(newWindow.getDecorView()); 

はそれがすべてlastID意図を取り除く意味なかったためであっても、それが唯一のインスタンスは二度目のない実行別の問題を引き起こし、私たちはSINGLE_TOPとSINGLE_TASKを使用している問題を克服し、あなたのlastId(アク​​ティビティ開始時に使用される.startChildActivity("FavActivity", myintent);)が複数のインスタンスで同じであるため、最新のものを持ってきてください。

子アクティビティを2回目または複数回実行するために、動的インテントIDは子アクティビティを起動します。例えば

Intent myintent = new Intent(getParent(),Second.class); 
myintent.putExtra("id",favadapter.getItem(position).id.toString()); 
TabGroupActivity parentFav = (TabGroupActivity)getParent(); 
parentFav.startChildActivity("FavActivity"+System.currentTimemillis(), myintent); 
+0

私はこの問題を正確に1ヶ月前に使用しました: 文字列newId = Id + "" + Math.random()* 1000; \t \tウィンドウウィンドウ= getLocalActivityManager()。startActivity(newId、intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)); これも時には大きなスタックのために空の画面を表示します。 – Hanry

関連する問題