1

ここにあるGoogleの推奨事項に従って、上ボタンを実装しました: http://developer.android.com/training/implementing-navigation/ancestral.html

このような:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        // This is called when the Home (Up) button is pressed
        // in the Action Bar.
    case android.R.id.home:
        Intent intent = new Intent(this, MainActivity.class);
        intent.addFlags(
                Intent.FLAG_ACTIVITY_CLEAR_TOP |
                Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
        finish();
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
}

このコードの大きな問題は、MainActivity が新しいインスタンスから開始されることです。MainActivity の以前のインスタンスを再起動せずに開きたいと思います。

このアクティビティは非常に重いため、ユーザーが上ボタンを押すたびに新しいアクティビティを作成したくありません。

フラグ FLAG_ACTIVITY_NEW_TASK を削除しようとし、考えられるすべてのフラグで多くのことを試しましたが、MainACTivity を以前の状態に戻すボタンを作成することに成功しませんでした。

どんな助けでも大歓迎です。

4

1 に答える 1

0

あなたが探しているのはフラグです:

Intent.FLAG_ACTIVITY_REORDER_TO_FRONT

アクティビティがタスクとスタックに既に存在する場合は、最前面に移動されます。それ以外の場合は、再作成されます。

onCreate()Activity が GC によって破棄された場合は、とにかく再作成され、初期化コードを取得した場所に応じて一部の UI コンポーネントがリセットされる可能性があることに注意してください (呼び出されたとは思いませんが、onResume()間違いなくになります

于 2013-05-15T13:26:31.423 に答える