問題タブ [activity-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 - Android アプリケーションのアクティビティ スタックはどのように維持されますか?
私はAndroidプログラミングが初めてです。
特定の Android アプリケーションのアクティビティ スタックがどのように維持され、ユーザー ナビゲーションに基づいてどのように変化するかを理解したいと考えています。
たとえば、複数のアクティビティがある場合、ユーザーが [戻る] ボタンまたは [ホーム] ボタンをクリックするか、新しいアクティビティを起動すると、アクティビティ スタックはどのように動作しますか?
すべての情報を入手できる適切な投稿を見つけようとしましたが、何も得られませんでした。誰かが私がこれを学ぶことができるいくつかのリンク/投稿を提案してもらえますか?
ありがとう!
編集:
これまでに出会ったリンク/投稿:
android - Android:最初のアクティビティとは別に、前のスタックのすべてのアクティビティをクリアする方法
アクティビティ スタックのリストをフォームとして持っていますが、フォームが終了したら、最初のアクティビティ以外のすべてのスタックをクリアしたいのですが、新しいアクティビティを表示して、新しいアクティビティをクリックすると最初のアクティビティに戻ります。
たとえば、A -> B -> C -> D は A -> E になるため、D でフォームを送信した後、E がユーザーに表示されます。
この方法で起動しますか?
android - 2 アクティビティは、GPS ステータスが変更されたことを通知されます
私は と を持ってA Activity
おりB Activity
、両方とも を実装していLocationListener
ます。だから両方持ってる
B Activity
から始めA Activity
ます。GPSをオフにすると、コードに示されているようにB
開き、 GPSをオンにして閉じます。GPSが数秒前にオフになったときに通知されるため、戻ってきたときにも表示されます。AlertDialog
AlertDialog
A Activity
AlertDialog
B
から開いてもA
、A
完全に破棄されず、バックスタックに保存されていると思います。A
Activity Backstack から削除せずにこの問題を解決するにはどうすればよいですか? アプリはAlertDialog
、画面上にあるアクティビティでのみ開く必要があります。
android - Androidは、ホームボタンを押したときにUIの状態を復元しますか?
A と B の 2 つのアクティビティがあります。
私のアプリは A から B に移動します (A -> B)。
B で戻るボタン (ハードウェアの戻るボタン) を押すと、A の状態と UI が正常に復元されます (onResume() が呼び出されています)。問題は、ホーム ボタン (アクションバーの矢印) を押すと、前のアクティビティ A が onCreate() を呼び出すため、戻るボタンを押した場合のようにその状態と UI が復元されないことです。
なぜこうなった?どうすれば解決できますか?
android - Android - ナビゲーション ドロワーを使用したアクティビティ スタック/タスク
アプリケーションには 3 つの最上位レベルのアクティビティがあります。アクティビティ A、B & C。
これらの各アクティビティは、ナビゲーション ドロワーをホストします。これら 3 つのアクティビティ間でアクティビティ スタックを管理する最善の方法を見つけようとしています。
たとえば、アプリケーションを起動すると、Activity A が起動されます。アクティビティ A には、アクティビティ B & C のようなナビゲーション ドロワーがあります。ドロワーでアクティビティ B をクリックすると、アクティビティ B が起動し、ドロワーでアクティビティ C をクリックすると、アクティビティ C が起動します。
ドロワーがバックエンド サービスからデータをロードするため、ドロワーが新しいアクティビティを起動するときにこれらのアクティビティを終了したくありません。また、戻るボタンをクリックすると、アプリケーションをバックグラウンドに送りたいと思います。
基本的に、アクティビティが存在しない場合は起動し、存在する場合は再開する方法を探しています。どうすればこれを達成できますか?
android - 戻るナビゲーション インテントのインテント エクストラを変更する
次のフローのアプリがあります (同じアプリ内のすべてのアクティビティ):
- アクティビティ A は でアクティビティ B を開始し
startActivity
ます。ブール値の "autoContinue"=true エクストラを追加する場合があります。 - アクティビティ B が開始されると、 で「autoContinue」フラグがチェックさ
onCreate
れgetIntent().hasExtra("autoContinue")
ます。フラグが true の場合、すぐに でアクティビティ C を開始しstartActivity
ます。
これで、アクティビティ C で戻るボタンを押すための 2 つのシナリオができました。
- アクティビティ B がまだアクティビティ スタックにあり、破棄されていない場合は、すべて問題ありません。アクティビティ C が閉じ、アクティビティ B が表示されます。
- ホームボタンを押してアクティビティ C を終了し、アクティビティ C に戻る前に他のことをすると、アクティビティ B が破棄されることがよくあります。アクティビティ C で戻るボタンを押すと、"autoContinue"=true のインテントでアクティビティ B が作成され、すぐにアクティビティ C が再び開始されます。
アクティビティ B のインテントからフラグを削除しようとしましたonCreate
が、うまくいきません:
アクティビティ C から戻るときに、インテント エクストラから "autoContinue"=true フラグを削除するにはどうすればよいですか?
android - Android ランチャーでホームを押した後、前のアクティビティ スタックに戻る
カスタム ランチャー/ホーム画面を開発しているため、ホーム プレス イベントを渡すことができます。
いわば、目に見えるアクティビティスタックに影響を与えることなく、ホームプレスをインターセプトしたい場合があります。ただし、ホームを押すと、ランチャー スタックが表示されると思いますが、次にやりたいことは、ホームを押す直前に表示された、最後にアクセスしたアクティビティ スタックに戻ることです。どうやってやるの?
ホームを押す直前に表示されていたアクティビティを取得して表示するにはどうすればよいですか?
android - スタックからログイン画面を破棄しながらアクティビティ間を移動する方法は?
特定の画面にいて、ユーザーが認証が必要なアプリの特定の部分にアクセスしようとすると、続行する前にログイン画面に移動するアプリがあります。
アプリが現在行っていることは、画面 3 にいるが、画面 4 に移動したいが、最初にログインして画面 4 に移動する必要があるとします。ログイン画面が表示され、ログインすると、ユーザーは画面にリダイレクトされます1 手順を戻して、元の画面に戻す必要がありました。
私が欲しいのは、ユーザーがボタンをクリックして画面4に移動すると、ログイン画面が表示され、ログインすると、ユーザーは画面3に戻ってボタンを再度クリックすることなく、画面4に送信されます。
私が試したのは、finish(); の呼び出しです。ユーザーが正常にログインすると、ユーザーは画面 3 に戻るだけなので、ボタンをクリックして画面 4 に移動する必要があります。もちろん、ログインしているため許可されます。
これをアプリに実装する方法について何かアイデアはありますか?
ありがとう
編集: タイトルは誤解を招く可能性があります。タイトルを言い換えるより良い方法は考えられませんでした。よろしければ、編集をリクエストしてください