ActionBarのUpナビゲーションとLaunchModeについて
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
上記のようなコードで設定するActionBarのUpナビゲーションは基本的に、
<activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".SubActivity" android:label="@string/title_activity_sub" android:theme="@style/AppTheme.NoActionBar"> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".MainActivity" /> </activity>
のように、そのActivityの親の階層に指定したActivityを新しく生成するらしい。
そういうわけで、親の階層に当たるActivityのlaunchModeがデフォルトの場合は、Upナビゲーションを実行する度に新しくActivityが生成され、親の階層に当たるActivityのlaunchModeがsingleTopの場合は、onNewIntent()メソッドから呼び出され、新しく生成されない。
onCreate()メソッドでテキストに現在時刻をセットするActivityを親側のActivityとして、Upナビゲーションを通して子のActivityと行ったり来たりしてみた。
launchMode デフォルト
launcheMode singltTop
データの読み込みのタイミングに注意したいというか、Toolbarに移行したいというか...。
actionbar-navigation-up-with-2-launche-mode · GitHub