問題タブ [activity-lifecycle]
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-intent - 画面をオフにしたときにAndroidアクティビティが再作成されないようにする
画面をオフにしたときにアクティビティが再作成されないようにするにはどうすればよいですか?
私がやること
- Bejewelsを起動し、ジュエリー画面に移動します。
- 電源ボタンをすぐに押します。画面はオフになっていますが、デバイスはオフになっています。
- 電源ボタンをもう一度押します。
私が見るもの
画面をオフにする前と同じ画面。
私のアプリケーション(簡単なもの、単一のWebViewを備えたWebアプリのみ)の場合、シナリオは次のとおりです。
私がやること
- アプリを起動します。アクティビティonCreate()メソッドは、URLをWebViewにロードします。
- 電源ボタンをすぐに押します。画面はオフになっていますが、デバイスはオフになっています。
- 電源ボタンをもう一度押します。
私が見るもの
WebViewはページをリロードしています。
私が期待したこと
Bejewelsの場合と同じように、同じ画面を見たいのですが、私のアプリの場合は、スクリプトが実行されている、フォームフィールドに入力されているなど、以前の状態のページです。
デバッグの結果、(前の質問で)私が間違っていて、画面がオンになったばかりのときにonDestroy()とonCreate()が1つずつ呼び出されていることがわかりました。また、スクリプトで再生される音楽がまだ聞こえているので、画面がオフのときは、電源ボタンをもう一度押すまで、アクティビティとWebViewの両方が存在するように見えます。
私が試したこと。
- android:alwaysRetainTaskState="true"同じ動作。
- 意図について読む(無駄に、私はそれらが私の状況にどのように適用されるかを理解していませんでした)。
- PhoneGapの使用。動作が異なります。電源ボタンを押すと、アプリケーション全体が強制終了されます。これは優れていますが、最善ではありません。
android - カメラインテントを呼び出した後に Android がアプリケーションを再起動しないようにするにはどうすればよいですか?
メモリの少ないデバイスで、カメラ インテントを呼び出した後に問題が発生しました。アクティビティ結果を受け取る必要がある場合、Android はアプリ全体を再起動します。
誰も同じ問題に直面しましたか? 解決策はありますか?
android - Save android activity state
I try to create LUDO game and when user stop the game I want to save game state (Activity state).
I understood that I need to save state in method OnPause() but there are lots variables that I need to save and there are all changing in time so I am not sure that I can save state in that way.
So can I save the whole Activity and OnResume() method to restored it and just continue whith the game?
Thanks.
android - エミュレータでアクティビティを再起動するときに OnPause() が呼び出されない
アクティビティ ライフ サイクルのドキュメントに従って、アプリケーションが強制終了される前に呼び出されることが保証されているため、メソッド内の永続的なアプリケーション状態をOnPause()
データベースに保存することにしました。 OnPause()
現在、Eclipse とavdエミュレーター (API レベル 8) を使用して次の動作に直面して
います。
OnPause()
現在、Instance1 は!を呼び出さずに終了しています。
OnPause()
なぜ呼ばれないのか誰か説明してくれませんか?常に呼び出されることが保証されていると思いました。そうでない場合は、Eclipse が Instance1 プロセスを終了する方法が原因である可能性があり、これを変更できるかどうかを知りたいです。どうもありがとう。
android - Activity.finish() メソッドは正確に何をしていますか?
私はしばらくAndroidアプリケーションを開発しており、アクティビティのライフサイクルとアプリケーションのライフサイクルに関する多くの投稿をフォローしています。
私はActivity.finish()
メソッド呼び出しが途中でどこかで呼び出され、Activity.onDestroy()
スタックからアクティビティを削除することを知っています。オペレーティングシステムとガベージコレクターは、彼が「自分のトリックを実行」して、楽しい時間を見つけたときにメモリを解放できることを何らかの形で示していると思いますそれで....
この投稿にたどり着きました- アプリケーションを終了することは眉をひそめていますか? マーク・マーフィーの答えを読んでください。
finish()
メソッドが実際に何をするのか、少し混乱しました。
私が電話する可能性と電話finish()
さonDestroy()
れない可能性はありますか?
android - カメラアプリから戻ったときにアクティビティが再作成されました
この問題は、2つの古いSamsung Galaxyモデルでのみ発生しますが、それでも非常に再現性があります。
デバイスのカメラアプリで撮影した写真を表示するシンプルなアプリがあります。そのアプリを起動するためのボタンが1つあり、結果をAsyncTaskで処理して、ImageViewにダウンサンプリングします。
この問題は、カメラアプリから戻るときのアクティビティのフローから発生します。何らかの理由で、アクティビティが作成され、プロセスの結果がAsyncTaskになりonActivityResult()
、破棄されますが、すぐに再作成されます。AsyncTaskが完了すると、誤った/古いアクティビティへの参照が保持されます。
いくつかのデバッグステートメントをさまざまなライフサイクルコールバックに配置すると、この奇妙な動作が明らかになります。
呼び出されたアクティビティのインスタンスonActivityResult()
(上記のハッシュコードに注意)は、表示されている最後のインスタンスと一致しなくなりました。したがって、ビットマップのロードスルーonBitmapLoaded()
が完了すると、誤ったインスタンスも保持されます。
なぜこれが発生するのですか?また、アクティビティが(不必要に)再作成されるのを防ぐにはどうすればよいですか?
android - 再起動時に再認証する - Android
onRestart が呼び出されるたびに、ユーザー資格情報を再認証する必要があります (通常、これは、ユーザーが画面をロックおよびロック解除したか、バックグラウンドにしてから戻ったことを意味します)。
だから私はそれをしました:
これは機能し、LoginActivity が表示されましたが、終了すると、最初のアクティビティの onRestart が再度呼び出され、LoginActivity が再び開かれます。
どうすればそれを処理できますか?
android - Android で SystemService にアクティビティ リスナーを 1 回だけ追加する必要がありますか? または履歴書()でも?
たとえば、SearchDialog の終了をリッスンするアクティビティ内で、ここで onCreate() にリスナーを登録します。
私の質問は、これはリスナーのままですか、それともレジューム()内で再度リスナーとして設定する必要がありますか? または登録されたものは常に登録されています。SearchManager へのローカル参照を保持していません。
また、なぜ私たちがそうしているのか、マネージャーがこのように null であるかどうかを確認する理由はありますか?それとも、null マネージャーが返されることはないと想定しても安全ですか?
android - Androidのホームボタンは何をしているのですか?
私が知っているのは、現在のアクティビティが onPause() モードになり、ホーム画面のアクティビティが前面に表示されることです。
私の混乱は、最近のタスク メニューからアプリケーションを再度開くことができる状況から始まります。最近のタスク マネージャーからアプリケーションを開くと、正確には何が起こっているのでしょうか?
ホームボタンが押されたときにフォアグラウンドだったアクティビティは、まだスタックのどこかにありますか?
同時に複数のアクティビティ スタックがありますか?
android - onPauseだけでアクティビティを強制終了できますか?
これは私が本から読んだことです:
アクティビティは、onPause() の後でサイレントに破棄できます。onStop() または onDestroy() のいずれかが呼び出されると想定してはなりません。
しかし、ドキュメントによると、一時停止は部分的に見えることを指します.onStopまたはonDestoryを呼び出さずに部分的に見えるアクティビティを強制終了できますか?