0

私は TabGroupActivity を使用してアプリに取り組んでいます。タブホスト アクティビティを介して起動しているので、各タブに複数のインテントを設定できます。

public class MainTabActivity extends TabActivity {
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_tab);
    final TabHost tabHost = getTabHost();   
     tabHost.addTab(tabHost.newTabSpec("tab2")
              .setIndicator("Que")
              .setContent(new Intent(this, TabGroup2Activity.class)));
}

TabGroup2Activity クラス:

public class TabGroup2Activity extends TabGroupActivity{
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent i = new Intent(getApplicationContext(),QueActivity.class);
    startChildActivity("categorias", i);
}

}

このページから TabGroupActivity を取得しました。

私の問題は、2 番目のタブをクリックすると、自分の QueActivity.class が開かれることです。これは基本的に、データベースから取得したアイテムを含むリストビューです。行をクリックすると、Bundle オブジェクトから渡された情報で新しいインテントが開かれます。問題は、このインテントで戻るボタンを押すと、onPause() イベントにあった QueActivity インテントに戻りますが、onStop()、onDestroy()、および onStart() イベントに移動して、他の状態に移動することです。 (onResumeだと思います)再度作成する必要はありません。問題は、再度作成されるインテントが、SQL クエリと、もう実行する必要のないものを実行することです。もう一度作成する必要がないように、戻るを押して最後のインテントを取得したいと思います。うまく説明できたと思います。

4

3 に答える 3

0

CURSOR off DB を使用したアクティビティで、CURSOR を閉じていることを確認してください。

stopManagingCursor(c);
于 2013-08-05T12:59:24.097 に答える
0

これはデバイス固有のものです。一部のデバイスは に移動せずonresume、最初life cycleから開始します。これを処理するには、 を使用Savedinstatnceして、状態を保存します。

于 2013-08-05T13:10:40.697 に答える
0

これを試して:

<activity ... android:launchMode="singleTop" />

マニフェスト ファイル内。

于 2013-08-05T13:03:28.377 に答える