[解決済み] 親アクティビティに正しく戻るにはどうしたらよいですか?
質問
アンドロイドアプリケーションに2つのアクティビティ(AとB)があり、アクティビティAからアクティビティBに取得するためにインテントを使用しています。parent_activityの使用は有効です。
<activity
android:name=".B"
android:label="B" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.app_name.A" />
</activity>
また、UPボタンが用意されているテーマを使っています。
つまり、アクティビティBを呼び出した後、アクティビティAに戻るためにUP-ボタンを使うことができます。 onCreate() -関数は、私が必要とする動作ではありません。私は、アクティビティBを呼び出す前に見えたように、アクティビティAを同じように見る必要があります。
これを実現する方法はあるのでしょうか?
EDIT
アクティビティAからアクティビティBを開始するコードは書いていません。Eclipseが自動生成していると思います。
Bクラスはこんな感じです。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_b);
getActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_b, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
解決方法は?
アクティビティAを標準装備で宣言した
launchMode
を Android マニフェストに追加しました。によると
ドキュメント
というのは、次のような意味です。
システムは常にターゲットのアクティビティの新しいインスタンスを作成します。 タスクを作成し、そこにインテントをルーティングします。
そのため、システムはアクティビティAを再作成することを余儀なくされる(つまり
onCreate
タスクスタックが正しく処理されたとしてもです。
この問題を解決するには、マニフェストを変更し、Aアクティビティ宣言に次の属性を追加する必要があります。
android:launchMode="singleTop"
注
通話
finish()
(以前解決策として提案したように)動作します。
だけ
である場合
間違いない
より複雑なワークフロー(例えば、通知からアクティビティBを起動する)では、これは事実ではないかもしれず、BからアクティビティAを正しく起動する必要があります。
関連
-
Androidで、onTouchEventでダブルクリックを実装し、ダブルクリックイベントとして判定する方法
-
[解決済み] android.os.NetworkOnMainThreadException' を修正するにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] アプリケーションからAndroidのWebブラウザでURLを開くにはどうすればよいですか?
-
[解決済み] Androidアプリケーションのアクティビティ間でデータを受け渡すにはどうすればよいですか?
-
[解決済み] Androidのローテーションでアクティビティを再開する
-
[解決済み] AndroidでstartActivityForResultを管理する方法
-
[解決済み] Intentsを使用して、あるAndroid Activityから別のAndroid Activityにオブジェクトを送信するにはどうすればよいですか?
-
[解決済み】Androidで、あるアクティビティから別のアクティビティにオブジェクトを渡す方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
aapt2エラー:ログを確認する(具体的な原因の探り方)
-
[android studio]com.android.ide.common.process.ProcessException: aaptの実行に失敗しました
-
Gradle の同期に失敗しました。com.android.tools.build:gradle が見つかりませんでした。
-
AndroidStudio3.0 Error:Execution failed for task ':app:processDebugResources'.
-
ActivityはOnFragmentInteractionListenerを実装しなければならないに関する質問
-
アプリケーションがメインスレッドで過剰に作業している可能性があります。
-
指定された子にはすでに親がいます。まず、その子の親に対して removeView() をコールする必要があります。
-
エラー:未宣言の識別子(AS)の使用
-
WeChatとQQは、他のアプリのオープンリストに自分のアプリを追加し、ファイルパスを取得することができます
-
Android カスタムスピナーコントロールのドロップダウン・ボックスの実装