アクティビティ ナビゲーションに問題があり、何が間違っているのかわかりません。
と がありますMainActivity
が、(アクション バーで) とSettingsActivity
を使用するBack
とUp
、設定アクティビティから 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>
それが問題を引き起こしている可能性があります。または、これがオーバーライドする必要がある正しい動作である場合、オーバーライドする「正しい」方法は何ですか?