問題タブ [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 - Clear the entire history stack and start a new activity on Android
Is it possible to start an activity on the stack, clearing the entire history before it?
The situation
I have an activity stack that either goes A->B->C or B->C (screen A selects the users token, but many users only have a single token).
In screen C the user may take an action which makes screen B invalid, so the application wants to take them to screen A, regardless of whether it is already in the stack. Screen A should then be the only item on the stack in my application.
Notes
There are many other similar questions, but I haven't found anything that answers this exact question. I tried calling getParent().finish()
- this always results in a null pointer exception. FLAG_ACTIVITY_CLEAR_TOP
only works if the activity is already on the stack.
android - アクティビティの Android スタックをクリアするには?
Android にいくつかのアクティビティを含むアプリケーションがあり、ユーザーがメニュー ボタンを押してログアウトできるようにしたいと考えています。私が抱えている問題は、
A) Android ではアプリケーションを終了できません
。B) ユーザーをLoginActivity
再度に送信しても、ユーザーはいつでも押し戻して、以前のアクティビティに戻ることができます。
私はすでに、次の 2 つのフラグを使用してアクティビティを起動しようとしました。
私もそれぞれ一人でやってみました。
また、別の StackOverflow の質問を読んだfinish()
後に電話をかけてみました。startActivity(intent)
android - 異なるインテントで起動されたときにアクティビティの複数のインスタンスを防ぐ方法
Google Play ストア アプリ (以前は Android マーケットと呼ばれていました) の [開く] ボタンを使用してアプリケーションを起動すると、アプリケーションにバグが発生しました。Intent
Play ストアからの起動は、電話のアイコンのアプリケーション メニューからの起動とは異なる方法を使用しているようです。これにより、同じアクティビティの複数のコピーが起動され、互いに競合します。
たとえば、私のアプリがアクティビティ ABC で構成されている場合、この問題は ABCA のスタックにつながる可能性があります。
この問題を解決するためにすべてのアクティビティで使用android:launchMode="singleTask"
してみましたが、HOME ボタンを押すたびにアクティビティ スタックがルートにクリアされるという望ましくない副作用があります。
予想される動作は次のとおりです: ABC -> HOME -> アプリが復元されると、次のものが必要です: ABC -> HOME -> ABC
HOMEボタンを使用するときにルートアクティビティにリセットせずに、同じタイプの複数のアクティビティを起動しないようにする良い方法はありますか?
android - Android で標準アプリのアクティビティ バックスタック状態を維持する (singleTask 起動モードを使用)
開発中の Android アプリの状態を維持する方法がわかりません。
明確にするために、アクティビティの状態を維持すること (つまり、特定のアクティビティのテキスト ボックスの値、チェックボックスなどを追跡すること) について話しているわけではありません。
たとえば、私のアプリケーションに と の 2 つのアクティビティがあるA
としB
ます。アプリを起動すると activityに移動A
し、ボタンを押すと activity に移動しますB
。この時点で、スマートフォンのホーム ボタンを押してメインの Android UI に戻り、アプリを終了します。ただし、アプリを再度実行することを選択した場合、アクティビティB
に移動する必要があります。これは、ホームボタンを押す前に中断した場所ですが、代わりにアクティビティに移動していA
ます。
これを修正する方法を知っている人はいますか?
(あなたが知る必要がある場合に備えて、私はSamsung Vibrantを使用しています)
android - 古い SDK (FLAG_ACTIVITY_CLEAR_TASK がない) で完全な Android アクティビティ スタックをクリアする
SOで少し読んで検索しましたが、現在のアクティビティスタックをクリアする方法が見つかりません。私のアプリのコンテキストは、バックグラウンド サービス/通知によって開始されるアクティビティです。
私のアプリで人のリストを整理できると想像してみてください。数時間前、あなたは"View" アクティビティで人物 Xを表示していましたが、それが現在スタックの一番上にあります。将来のある時点で、サービスがトリガーされ、ユーザー Yの新しい「通知」アクティビティがポップアップします。そこから、Y さんの詳細を編集できます。
このアクティビティを終了したときに、スタックをポップして人物 X を表示することは、ユーザー エクスペリエンスを混乱させることになります。理想的には、ユーザーが行っていたこと (メールなど) に戻るか、少なくとも私のアプリの家。
「通知」を開始しようとしましFLAG_ACTIVTY_NEW_TASK
たが、それは役に立たないようです:タスクが終了すると、前のタスクに戻るだけです。私が欲しいのはFLAG_ACTIVITY_CLEAR_TASK
、以前の SDK には存在しなかった Android 3 の new のようです。
それを達成するための提案はありますか?
android - タスク内でアクティビティを開始
Android で、タスクの先頭ではなく、現在のアクティビティからアクティビティを開始する方法はありますか。
たとえば、アクティビティ A -> B -> C があり、B で新しいアクティビティ D を開始し
ます。A -> B -> D -> C の順序を取得できますか?
ありがとう!
android - Android:onStopの後に「noHistory」属性を使用してアクティビティに戻る方法は?
履歴スタックから特定のアクティビティを削除する方法を探していましたが、ここで解決策を見つけました(Wakkasの回答)。ただし、ホームボタンを押すなどしてこのアクティビティを開いた状態でアプリを閉じ、後でアプリに戻ると、アクティビティは復元されません。
「noHistory」属性を削除すると、属性が戻ってきて、キル後に復元されます。
この動作なしで履歴スタックに表示されないようにする方法はありますか(=次のアクティビティで戻るボタンを押して履歴スタックに戻りたくない)?
よろしく、クラゲ
android - バックスタックからのフラグメント onResume
Android 2.2 で Fragments を使用するために互換パッケージを使用しています。フラグメントを使用し、それらの間のトランジションをバックスタックに追加する場合、アクティビティの onResume と同じ動作を実現したいと考えています。バックスタックでは、フラグメント内で何らかのコールバックをアクティブにしたいと考えています (たとえば、共有 UI リソースで特定の変更を実行するため)。
フラグメント フレームワーク内にコールバックが組み込まれていないことがわかりました。これを達成するための良い習慣はありますか?
android - 'バックスタックの基本
Task と back stacksに関する android.com の開発者ガイドを読みました。
たとえば、現在のタスク (タスク A) のスタックに 3 つのアクティビティがあり、現在のアクティビティの下に 2 つあるとします。ユーザーは HOME キーを押し、アプリケーション ランチャーから新しいアプリケーションを起動します。ホーム画面が表示されると、タスク A はバックグラウンドに入ります。新しいアプリケーションが開始されると、システムはそのアプリケーションのタスク (タスク B) を独自のアクティビティ スタックで開始します。そのアプリケーションと対話した後、ユーザーは再びホームに戻り、最初にタスク A を開始したアプリケーションを選択します。ここで、タスク A が前面に表示されます。スタック内の 3 つのアクティビティはすべてそのままで、スタックの一番上にあるアクティビティが再開されます。
すべてのタスクが独自のスタック (バック スタック) を作成するようです。私の仮定は本当ですか、それともスタックは 1 つしかありませんか? 通常は C のようにコンパイラーが持っていますか?
android - Androidアプリケーションでバックスタックアクティビティを見つける方法は?
アクティビティ バック スタック A -> B -> C -> D -> E を含むアプリケーションがあります。アクティビティ E で、移動元のバック スタック アクティビティを知りたいと考えています。どうすればこれを見つけることができますか??