私には2つの活動があります。Activity A
と言うActivity B
。
[ボタンをクリックして起動] から、
これに使用するコードを次に示します。Activity A
Activity B
Intent intent = new Intent(this, ActivityB.class);
this.startActivity(intent);
この時点で、私は
Activity B
. の on create メソッドでActivity B
、up ボタンを有効にします。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_news);
getActionBar().setDisplayHomeAsUpEnabled(true); //Here//
}
「上」ボタンのイベントハンドルには、次のコードがあります。
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()) {
case android.R.id.home:
finish();
NavUtils.navigateUpFromSameTask(this);
default:
return super.onOptionsItemSelected(item);
}
}
Activity A
ここで、アクション バーの [上へ] ボタンをクリックして、次のよう
に戻ることにしました。
問題は、「上へ」ボタンをクリックすると、どちらに戻ってActivity A
も問題ありませんが、再起動することです。どうすれば再起動を停止できますか? 再開してほしい。
ハードウェアの戻るボタンを使用すると、期待どおりに機能します。つまりActivity A
、再起動するのではなく、アクセスして再開します。
アクティビティを再開したいのは、そのアクティビティで文字列をオンラインでダウンロードするため、ユーザーがアクティビティ B -> アクティビティ A
に移動したときにデータを再ダウンロードし続けたくないからです。
セクションのマニフェスト ファイルを編集
Activity B
すると、次のようになります。
<activity
android:name="com.example.android.ActivityB"
android:label="@string/title_activity_view_news"
android:parentActivityName="com.example.android.ActivityA">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.android.ActivityA" />
</activity>
編集 2 [回答] わかりました、これはかなり予想外でしたが、AndroidManifest.xml のアクティビティ A セクションで、次の行ライナーを追加する必要がありました。
android:launchMode="singleTop"
したがって、次のようになります。
<activity
android:name="com.example.android.ActivityA"
android:label="@string/app_name"
android:launchMode="singleTop"> //**HERE**//
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>