問題タブ [activity-finish]
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 - Activity3 から MainActivity を終了する方法
私は、MainActivity
を呼び出すボタンがあるアプリケーションを開発していますActivity1
(このアクティビティのテーマはダイアログに設定されていますandroid:theme="@android:style/Theme.Holo.Light.Dialog
) 。MainActivity
そうしないActivity1
と、ホーム画面の上に表示されます。
私のActivity1
では、私の他のアクティビティ、つまりActivity2
が呼び出されます。これもActivity1
ダイアログテーマと同じです。今から、ダイアログテーマのない通常のアクティビティをActivity2
呼び出しました。Activity3
MainActivity
今、私はからを終えたいですActivity2
。
どうすればそれを達成できますか?
あらゆる種類の助けをいただければ幸いです。
android - onActivityResult の終了アクティビティが機能しない
私には、一緒に生きるか死ぬかしなければならない一対の活動があります。基本的に、AlphaActivity は何らかの作業を行ってから、startActivityForResult()
BetaActivity のインテント ( ) をディスパッチします。BetaActivity が完了したら、GammaActivity のインテント ( startActivity()
) をディスパッチしてから、それ自体を呼び出しfinish()
ます。終了したら、AlphaActivity のonActivityResult()
メソッドが呼び出されることを望んでいましたが、それは決して起こらないようです。私の設計では、AlphaActivity の 内onActivityResult()
で を呼び出しますfinish()
。私の計画では、GammaActivity に達すると、ユーザーは AlphaActivity にも BetaActivity にも戻ることができなくなります。しかし現在、戻るボタンはユーザーを AlphaActivity に連れて行きます。
なぜうまくいかないのかについてはいくつかの考えがありますが、実際に何がうまくいくのかに興味があるので、ここでそれらについて議論することは無意味です.
編集:
コードはすべて非常に標準的なものです。
アルファ内部から
ベータ版の内部から:
android - 別のアクティビティが終了したときにメソッドを呼び出す
別のアクティビティの上にアクティビティを表示するライブラリを使用しています。Bundles または onCreate() を使用していません。
つまり...アクティビティ A はバックグラウンドで実行され、アクティビティ B はフォアグラウンドで実行されます。アクティビティ B が終了したら、アクティビティ A のメソッドを呼び出したい。
これを達成する方法についてのアイデア/提案はありますか? これはおそらくアルゴリズムの問題です。私はまだ初心者のプログラマーなので、助けてくれて本当に感謝しています! ありがとう!
android - Android - ViewPager > Fragments > Activities でメモリ不足がクラッシュする
アプリで v4 サポート ライブラリを使用しており、通常の状況では正常に機能するステップ ベースのプロセスがアプリに含まれています。ただし、すべてが機能する必要があり、メモリ不足の状況下でクラッシュしないという要件があります。そのため、これを支援するために SetAlwaysFinish ライブラリを使用しています ( https://github.com/bricolsoftconsulting/SetAlwaysFinish )。この種の状況を検出して処理する必要がある領域を特定するのに非常に役立ちましたが、困惑する状況に遭遇しました. これは通常の状況では正常に機能することに注意してください。ただし、「setAlwaysFinish」= ON で明示的にテストしています。
これが私のセットアップです。ViewPager のレイアウトをホストする「ProcessActivity」クラスがあります。ViewPager には Adapter セットがあり、これにはプロセスを網羅する Fragments のリストが含まれています。これは onCreate() メソッドにあります。
プロセス アクティビティ:
他にもパーツはありますが、それがセットアップ方法の核心です。Fragment ステップの 1 つの間に、実際にはステップ プロセスから「中断」し、一時的にアクティビティにプッシュして何らかのロジックを実行する必要があります (その後、ステップ プロセスに戻ります)。アクティビティが終了したときに、アクティビティで OK/Cancel アクションを処理できるようにする必要があるため、ForResult を使用して次のようにします。
Step4Fragment :
このビューにプッシュされると、ProcessActivity と Step4Fragment の両方の onDestroy() メソッドが呼び出されることがあります (alwaysFinish のため)。正常に動作しているように見えて、Step-Fragment プロセスにコールバックすることがあります。しかし、通常は、ProcessActivity の onDestroy() メソッドを呼び出してから、バンドルに保存されたインスタンスの状態を設定して onCreate() メソッドを再度呼び出します。これにより、上記のステップ作成コードが呼び出され、ユーザーが行った最後のステップが表示されているファンキーな状態にアプリが置かれますが、実際には最初のステップにあります (フラグメントは、その時点で、断線)、必然的にクラッシュが発生します。この時点で、Step4Fragment は完全にばらばらで、何かしようとするとどこかでクラッシュするようです。
これに対処する最善の方法について何か考えはありますか? メモリの問題が発生した場合にユーザーをプロセスの最初のステップに戻せるように、単にリセットする方法さえ見つければ問題ないと思います。ただし、もちろん、私の懸念はクラッシュです。
詳細を提供する必要がある場合はお知らせください。助けてくれてありがとう!
更新 #1: フラグメントが再インスタンス化および初期化され、「現在の」フラグメントの onActivityResult() メソッドに適切に分類され、適切に実行する必要があることに気付いた簡単な更新です。これらのシナリオの 1 つに従って、切断がどこにあるかは基本 ProcessActivity クラスにあるようです。ViewPager レイアウトは適切に表示されますが、ViewPager の外側のすべてが正しくありません (つまり、プロセスの最初のステップにあることを示しているのに、4 番目にあることを示す必要があり、ナビゲーション ボタンが最初のステップに表示されています)。 4 番目ではなく)。
したがって、これらの要素を手動で適切に設定する必要があると思います。これを深く掘り下げると、誰かがこれを積極的に支援するために必要なコードの一部を省略している可能性があります。この onDestroy()/onCreate() 全体が呼び出される前に、「現在表示されているフラグメント」を取得する機能を含む ViewPager フィールドの状態に何らかの方法でアクセスできたら、おそらくsavedInstanceState バンドルからですか? それはおそらく私の問題を解決するでしょう。しかし、デバッグ時にこのバンドルを調べると、フラグメント自体とそれぞれの状態しか表示されません。でも掘り続けます。
とにかく、この種のことを適切に行う方法について誰かアイデアがあれば教えてください(もちろん、高レベルで)。
更新 #2 「現在の」フラグメントが正しく開始されているように見え、ビューが正しく表示されていても、すべてが切り離されていることがわかります。getResources() や getActivity() などでメソッドを呼び出すことはできません。実際には、ステップ インデックス (int) を savedInstanceState バンドルに保存し、UI をリロードすることに基づいて、ProcessActivity を適切に「機能させる」ことができました。その周りの要素。ただし、適切に再インスタンス化されているように見えても、現在のフラグメントがアクティビティから切り離されているこのブロッカーがまだあります。
更新 #3 この投稿の指示に従う場合: ViewPager とフラグメント - フラグメントの状態を保存する正しい方法は何ですか? 、最初の putFragment() を実行しようとすると、すぐに例外が発生します。例外は、「IllegalStateException: フラグメント Step4Fragment は現在 FragmentManager にありません」です。これは、常に左に 1 つのフラグメント、右に 1 つのフラグメントのみを「アクティブ」にしているという事実に関係しているのではないかと考えています (つまり、offScreenPageLimit)。
java - Android - フラグメントを終了する方法
私のアプリケーションにはナビゲーション ドロワーがあり、アプリの動作方法にはアクティビティが 1 つしかなく、ナビゲーション ドロワーから何かを選択すると、現在のフラグメントが開始/置換されます。ナビゲーションドロワーから何かが選択され、新しいフラグメントが開始されたときに古いフラグメントが終了するようにするにはどうすればよいですか
できない
アクティビティが 1 つしかないため、アプリが強制終了されるためです。
フラグメントを殺すにはどうすればよいですか?
編集:私のフラグメントトランザクション
ありがとう
android - Androidの終了ボタンが機能しない
ボタンをクリックしてアプリを閉じようとしていたので、ホームページで次のコードを使用します
ホームページpage5
のクリックから開きます。close button
そのため、ホームページの閉じるボタンをクリックすると、アプリを閉じる代わりに再びページ5に移動します。
問題を見つけるのを手伝ってください
前もって感謝します。