5

アクティビティ ナビゲーションに問題があり、何が間違っているのかわかりません。

と がありますMainActivityが、(アクション バーで) とSettingsActivityを使用するBackUp、設定アクティビティから 2 つの異なる結果が得られます。

たとえば、[戻る] ボタンを押すと、 内で次のライフサイクル コールバックが取得されますMainActivity

V/lifeCycle: onOptionsItemSelected
V/lifeCycle: onPause
V/lifeCycle: onSaveInstanceState-Bundle[..]
V/lifeCycle: onStop
<< PRESS BACK BUTTON >>
V/lifeCycle: onRestart
V/lifeCycle: onStart
V/lifeCycle: onResume
V/lifeCycle: onPostResume

Navigate UP ボタンを押すと、次の結果が得られます。

V/lifeCycle: onOptionsItemSelected
V/lifeCycle: onPause
V/lifeCycle: onSaveInstanceState-Bundle[..]
V/lifeCycle: onStop
<< PRESS NAV UP >>
V/lifeCycle: onDestroy // Problem
V/lifeCycle: onCreate  // Seems
V/lifeCycle: onStart   // Here
V/lifeCycle: onResume
V/lifeCycle: onPostResume

問題は、メイン アクティビティを押すNav UPと破棄されて再作成され、すべてのビュー ステートが失われることですが、[戻る] ボタンを押してもこれは行われません。

それが私が始めている方法であるかどうかはわかりませんPreferenceActivity

Intent intent = new Intent(this, SettingsActivity.class);
            startActivity(intent);
            return true;

または、私の意図がどのようにAndroidManifest.xml構成されているか:

<activity
    android:name=".MainActivity"
    android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity
    android:name=".SettingsActivity"
    android:label="@string/title_activity_settings"
    android:parentActivityName=".MainActivity">
    <intent-filter>
        <category android:name="android.intent.category.PREFERENCE" />
    </intent-filter>
</activity>

それが問題を引き起こしている可能性があります。または、これがオーバーライドする必要がある正しい動作である場合、オーバーライドする「正しい」方法は何ですか?

4

1 に答える 1