問題タブ [back-stack]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - FLAG_ACTIVITY_NEW_TASK を使用して、既存のタスクを前面に表示します
上記のAndroidドキュメントFLAG_ACTIVITY_NEW_TASK
:
このフラグを使用する場合、開始しようとしているアクティビティに対してタスクが既に実行されている場合、新しいアクティビティは開始されません。代わりに、現在のタスクが前回の状態で画面の前面に表示されます。
これを実装するデモを作成します。A と B の 2 つのアプリがあります。A にはアクティビティ A1 が含まれ、B にはアクティビティ B1、B2 が含まれます。
私は次の手順に従います:Home Screen(Application A icon) --> A1 (FLAG_ACTIVITY_NEW_TASK to start B1)--> B1 -->B2 --> Home Screen(Application B icon)-->
私の理解では、ランチャーからアプリケーション B アイコンをクリックして、アクティビティ B1 を起動しFLAG_ACTIVITY_NEW_TASK
ます。したがって、前に開始されたタスクを前面に表示する必要がありますが、残念ながら、実際には新しいアクティビティ B1 が開始され、B タスク スタックは次のようになります: (下)B1 B2 B1。
ランチャーでアプリケーション B のアイコンをクリックしたときに既存のタスクを前面に表示するにはどうすればよいですか
android - アクティビティを終了して、さまざまな場所に戻るにはどうすればよいですか?
私のアプリケーションは、3 ~ 4 のアクティビティを拡張するアクションを実装しています。このプロセスへのエントリ ポイントは、アプリケーション内のさまざまなアクティビティからのものにすることができます。(HomeActivity、さまざまな displayActivity)。最後のアクティビティが正常に終了したら、最初のアクティビティに戻りたいです。
それを行うためのベストプラクティスの方法はありますか? ありがとうございました。
android - DialogFragments を使用したウィザード: バックスタックからダイアログをポップするために、戻るボタンを 2 回クリックする必要があるのはなぜですか?
DialogFragments のシーケンスをウィザードとして表示したい。次のコードで最初のものを示します。
最初のダイアログから 2 番目のダイアログに切り替えるには、次のコードを使用します。
このコードは、 のサブクラスであるOnClickListener
内で呼び出されます。ConnectDialog
DialogFragment
2 番目のダイアログが表示されたら、ハードウェアの [戻る] ボタンを 2 回クリックして最初のダイアログを表示する必要があります。戻るボタンを 1 回クリックしただけで、最初のダイアログが再び表示されるようにしたいです。どうすればそれを達成できますか?
android - (アクティビティのレクリエーション): 無効化されたデータに基づいて構築されたバックスタックをどうするか?
いつ何をすべきか:
1. アプリがアクティビティとフラグメントの複雑な構造を使用している
2. 途中で (部分的またはそうでなくても) 破棄されたバックグラウンドのアプリケーション
に戻る 3. 奥深くにある最後の画面に戻るワークフローで
4. 物事を再初期化するために最初の画面に戻る必要があります (複雑でユーザーの操作が必要
な
ため)この状況。
- 実行するアクション: インテントを起動しますか? 終了するだけですか?保持されている下部構造に何かをしてから終了しますか?
- いつ実行するか - Activity.onCreateとActivity.onCreate の両方ですぐにフラグメントの空のコンストラクタ? それとも活動で十分ですか?
- それを検出する最良の方法: これまでに思いついたのは、必要なデータ/接続を保持する Service にバインドし、初期化されているかどうかを確認することだけです。しかし、バインドは onResume 後に終了します。
UI関連については何も尋ねていません。
特定の 1 つのアプリケーションでのみ機能するソリューションを求めているわけではないので、コードを求めないでください。
この質問が漠然としていると思われる場合は、「スタックを閉じて最初の画面に戻るにはどうすればよいですか?」という 1 文のバージョンを次に示し
ます。 .com/questions/14650342 .
android - アクティビティから戻る位置を制御
3 つのアクティビティを持つアプリがあります。
Activity1
データ(スポーツゲームのプレーヤーからの数字)を収集しますActivity2
TextViews
からのデータに基づいてクリック可能な表示Activity1
(からActivity2
入力された数字を検索しActivity1
、プレーヤーの名前とのリンクを表示します)。Activity3
WebView
ユーザーがリンクの 1 つをクリックすると、データの が表示されますActivity1
(スポーツ Web サイトからプレーヤーの Web ページが読み込まれます)。
アクティビティのラベルにある「戻る」リンクのアクションを制御して、に行くのではなく、Activity1
からに戻るようにしたいと考えています。方法があると思いますが、オンラインやヒントで見つけることができませんでした。Activity3
Activity2
android - バックスタックからフラグメントをポップする方法
フラグメント Cf を呼び出すフラグメント Bf を呼び出すアクティビティ A があります。Cf が呼び出されたときに Bf をバックスタックに配置して、ユーザーがバックスタックに戻ることができるようにします。ただし、Cf で特定のボタンが押された場合は、バックスタックから Bf を削除したいと考えています。これは可能ですか?
popBackStack() 関数があることがわかります。ただし、これがどのように機能するかについては少し混乱しています。この機能を使用しても安全ですか? バックスタックの Bf の後に別のアプリケーションからのアクティビティが挿入される可能性はありますか?
また、バックスタック上のフラグメントの savedInstanceState を変更する方法はありますか?
エミュレーターを使用してバックスタックで堅牢なテストを行う方法がわかりません。
android - アクティビティ LaunchMode
これは、マニフェストにあるアクティビティ タグです。
私が達成したいことは次のとおりです。
Activity_A ---> Activity_B ---> Activity_C ---> Activity_B
Activity_B から Activity_C に移動するとき、Activity_B を終了したくありません。
しかし、Activity_C のボタンをクリックすると、Activity_B を起動する必要があります。Activity_B は再作成する必要があり (Activity_C の何らかのアクションのためにデータが変更されます)、バックスタックにある Activity_B の以前のインスタンスを終了する必要があります。
android:launchMode="singleTask"
これはほぼ必要に応じて機能しましたが、Activity_B は再作成されていません。
android:launchMode="singleTop"
Activity_B を再作成しますが、以前のインスタンスをバックスタックから削除しません
android:launchMode="singleInstance"
これは同じように動作していますsingleTask
android - エクスポートされたアクティビティを最近から除外する方法は?
他のアプリから呼び出すことができるエクスポートされたアクティビティを持つアプリがあります (具体的には共有アクション - android.intent.action.SEND
)
エクスポートされたアクティビティを最近のアクティビティから除外するにはどうすればよいですか?
FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
外部から呼び出されるため、フラグを設定する方法がわかりません。
これを行う理由は、このインテントがアクティビティ スタックの最後のものになるためです。そのため、最近のものをクリックすると、メインのアクティビティがポップアップする代わりにファイルが再共有されます。
注:android:launchMode="singleTask"
別のアクティビティが上にある場合にのみ、特定のケースで問題を解決します。ただし、これはオプションではありません。ユーザーのタスク フローが中断され、ルートに他のアプリのアクティビティがない場合は機能しないためです。
android - バックスタックの NullpointerException
私は API レベル 16 を使用します。既に一部のフラグメントがあるタブの下にある一部のフラグメントを置き換えようとしています。理由を本当に見つけることはできませんが、次のような例外が発生することがあります。
null Fragment を追加せず、そこで実行されるコードは単純です。
必要に応じて、例外が発生するので、Grepcode を見てください: http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.1.2_r1/android/ app/BackStackRecord.java#604
私はそこでアニメーションを使用していません。