2012-03-01 20 views
2

私はトップレベルのTabActivityで構成されるAndroid 2.3.3アプリケーションを開発しています。私はまた、プログラム的TabHostへのタブの数を追加し、それぞれ別々の子アクティビティを与えている:TabHostでのアクティビティの終了/再開

intent = new Intent().setClass(this, MyFirstActivity.class); 
spec = tabHost.newTabSpec(...).setIndicator(...).setContent(intent); 
tabHost.addTab(spec); 

intent = new Intent().setClass(this, MySecondActivity.class); 
spec = tabHost.newTabSpec(...).setIndicator(...).setContent(intent); 
tabHost.addTab(spec); 

イベントは自分のアプリケーション内の他の場所で起こり、それに応答して、私はすべてのタブの活動を再作成します。これを行うために、私はgetTabHost().l clearAllTabs()を呼び出していますが、タブから削除しますが、実際にアクティビティを終了させるようには見えません。上記のコードをもう一度実行すると、既存のアクティビティはそのままタブに追加され、以前と同じように実行されます。

インテントを正しく作成して再作成するためにフラグを設定する必要がありますか?あるいは、子アクティビティが親TabActivityから削除されているときに通知する他の方法はありますか?

答えて

1

フラグを設定して、アクティビティを再開できます。コードは以下の通りです。

spec = tabHost .newTabSpec("tab1") 
        .setIndicator("FirstActivity") 
        .setContent(new Intent(this,MyFirstActivity.class) 
        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)); 
    tabHost.addTab(spec); 
+0

ありがとうございます。私は実際にその旗を文書で見ましたが、私はそれが何のためにあるのか誤解しました。何らかの理由で私はそれがアクティビティスタック全体をクリアしたと思った。助けてくれてありがとう! –

+1

あなたの歓迎マーク。 –

関連する問題