問題タブ [ondestroy]
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 サービスの onDestroy メソッドが呼び出されていません。ラムが少ないからでしょうか?
私は活気に満ちた銀河を持っています。少し前にICS ROMをインストールしました。2.2 で使用していたビデオ キャプチャ プログラムが、ビデオのキャプチャ中に通知なしで突然終了することに気付きました。その後、ICS が多くのメモリを使用することを知りました。
私は現在、サービス インテントを通じてオブジェクトの配列を作成するアプリに取り組んでいます。このサービスはスティッキー サービスです。ですから、私の理解では、それは可能な限り存続します。onDestroy メソッドで、オブジェクトの配列をファイルにシリアライズして、サービスの再起動時に配列が読み込まれるようにします (ファイルが存在する場合)。だから私は自分のアプリをテストし、すべてが正常に動作し、アクティビティを終了します (インテントはまだバックグラウンドで実行されているはずです)。次に、ICS インターネット ブラウザーを実行すると、アプリから強制的に閉じられます。
システムがサービスを強制終了し、ondestroy が呼び出されない可能性はありますか?
android - Activity.finish() メソッドは正確に何をしていますか?
私はしばらくAndroidアプリケーションを開発しており、アクティビティのライフサイクルとアプリケーションのライフサイクルに関する多くの投稿をフォローしています。
私はActivity.finish()
メソッド呼び出しが途中でどこかで呼び出され、Activity.onDestroy()
スタックからアクティビティを削除することを知っています。オペレーティングシステムとガベージコレクターは、彼が「自分のトリックを実行」して、楽しい時間を見つけたときにメモリを解放できることを何らかの形で示していると思いますそれで....
この投稿にたどり着きました- アプリケーションを終了することは眉をひそめていますか? マーク・マーフィーの答えを読んでください。
finish()
メソッドが実際に何をするのか、少し混乱しました。
私が電話する可能性と電話finish()
さonDestroy()
れない可能性はありますか?
android - onDestroyでのAsyncTask.executeの意味
私のonDestroy
関数でこのコードを実行しています:
私はAsyncTask
サーバーにリクエストを送信します(200の応答で返されます)。
私の質問は、これを行うことの意味(もしあれば)は何ですか?
アクティビティは破棄されますか?サーバーが応答しない場合、アプリは起動したままでANRに入る可能性がありますか?何かご意見は?
編集
代わりにこれを試してみましたが、android.os.NetworkOnMainThreadException
。
更新#2
Thread
代わりに使用Runnable
してトリックを行いました!
android - アプリを閉じると、拡張アプリケーションクラスのデータが失われます
ここに例示されているのと同じアプローチを使用して、Applicationクラスを拡張するクラスにいくつかの静的オブジェクトを保持するAndroidアプリケーションがあります。
このクラスによって保持されているオブジェクトは、アプリのすべてのアクティビティ間で共有および操作されます。
すべてが正常に機能しますが、しばらく前に、アプリケーションがバックグラウンドでしばらく実行され、復元されると、拡張クラスに保存されていたデータが失われ、アプリが大量のデータをスローし始めることに気付きました。 NullReference例外。
これは、アプリケーションがOSによって一時的に破棄され、再度使用する必要があるときに再作成されたために発生したと思います。
では、このシナリオをどのように処理できますか?アクティビティのonDestroyイベントにサブスクライブせずに、アプリケーションが一時的に破棄されていることを検出する方法はありますか?私が行ったテストでは、アプリのバックグラウンドプロセスを停止するように要求したときに、onDestroyイベントが呼び出されませんでした。
どうもありがとう!
android - Android ライブ壁紙が表示されない
ライブ壁紙の学習を始めたばかりで、この小さなものを作りました。
問題は、私のアプリが問題なくコンパイルされることです。
電話で開くと、プレビューに壁紙が表示されますが、「壁紙として設定」をクリックすると、何らかの理由でクラッシュし、フロント画面に戻り、壁紙が黒くなりますが、実行されません。
私の推測では、問題は onDestory() のどこかにある..
07-06 17:14:43.869: E/Surface(478): バッファのデキュー エラー (不明なエラー: -19) 07-06 17:14:43.869: E/Surface(478): dequeueBuffer に失敗しました (そのようなデバイスはありません) 07-06 17:14:43.869: E/BaseSurfaceHolder(478): 例外ロック サーフェス 07-06 17:14:43.869: E/BaseSurfaceHolder(478): java.lang.IllegalArgumentException 07-06 17:14:43.869: E /BaseSurfaceHolder(478): android.view.Surface.lockCanvasNative(ネイティブ メソッド) 07-06 17:14:43.869: E/BaseSurfaceHolder(478): android.view.Surface.lockCanvas(Surface.java:288) 07 -06 17:14:43.869: E/BaseSurfaceHolder(478): com.android.internal.view.BaseSurfaceHolder.internalLockCanvas(BaseSurfaceHolder.java:132) 07-06 17:14:43.869: E/BaseSurfaceHolder(478): com.android.internal.view.BaseSurfaceHolder.lockCanvas(BaseSurfaceHolder.java:112) 07-06 17:14:43.869: E/BaseSurfaceHolder(478):com.mendel.strips.Strips$StripsEngine.run(Strips.java:81) 07-06 17:14:43.869: E/BaseSurfaceHolder(478): java.lang.Thread.run(Thread.java:1096) 07-06 17:14:43.972: W/dalvikvm(478): threadid=15: キャッチされない例外で終了するスレッド (group=0x4001b188) 07-06 17:14:43.979: E/AndroidRuntime(478): キャッチされないハンドラー: スレッドキャッチされていない例外 07-06 17:14:43.990: E/AndroidRuntime(478): java.lang.NullPointerException 07-06 17:14:43.990: E/AndroidRuntime(478): at com.mendel. strips.Strips$StripsEngine.run(Strips.java:82) 07-06 17:14:43.990: E/AndroidRuntime(478): java.lang.Thread.run(Thread.java:1096) 07-06 17: 14:43.999: I/dalvikvm(478): threadid=7: シグナル 3 07-06 に反応しています 17:14:43.999: E/dalvikvm(478): スタック トレース ファイル '/data/anr/traces.txt を開けません': アクセス拒否Strips$StripsEngine.run(Strips.java:81) 07-06 17:14:43.869: E/BaseSurfaceHolder(478): java.lang.Thread.run(Thread.java:1096) 07-06 17:14: 43.972: W/dalvikvm(478): threadid=15: キャッチされない例外で終了するスレッド (group=0x4001b188) 07-06 17:14:43.979: E/AndroidRuntime(478): キャッチされないハンドラー: スレッド スレッド 8 がキャッチされないために終了する例外 07-06 17:14:43.990: E/AndroidRuntime(478): java.lang.NullPointerException 07-06 17:14:43.990: E/AndroidRuntime(478): com.mendel.strips.Strips$StripsEngine.run で(Strips.java:82) 07-06 17:14:43.990: E/AndroidRuntime(478): java.lang.Thread.run(Thread.java:1096) 07-06 17:14:43.999: I/dalvikvm (478): threadid=7: シグナル 3 07-06 17:14:43.999 に反応しています: E/dalvikvm(478): スタック トレース ファイル '/data/anr/traces.txt' を開けません: 許可が拒否されましたStrips$StripsEngine.run(Strips.java:81) 07-06 17:14:43.869: E/BaseSurfaceHolder(478): java.lang.Thread.run(Thread.java:1096) 07-06 17:14: 43.972: W/dalvikvm(478): threadid=15: キャッチされない例外で終了するスレッド (group=0x4001b188) 07-06 17:14:43.979: E/AndroidRuntime(478): キャッチされないハンドラー: スレッド スレッド 8 がキャッチされないために終了する例外 07-06 17:14:43.990: E/AndroidRuntime(478): java.lang.NullPointerException 07-06 17:14:43.990: E/AndroidRuntime(478): com.mendel.strips.Strips$StripsEngine.run で(Strips.java:82) 07-06 17:14:43.990: E/AndroidRuntime(478): java.lang.Thread.run(Thread.java:1096) 07-06 17:14:43.999: I/dalvikvm (478): threadid=7: シグナル 3 07-06 17:14:43.999 に反応しています: E/dalvikvm(478): スタック トレース ファイル '/data/anr/traces.txt' を開けません: 許可が拒否されました81) 07-06 17:14:43.869: E/BaseSurfaceHolder(478): java.lang.Thread.run(Thread.java:1096) 07-06 17:14:43.972: W/dalvikvm(478): スレッド ID =15: キャッチされない例外で終了するスレッド (group=0x4001b188) 07-06 17:14:43.979: E/AndroidRuntime(478): キャッチされないハンドラー: キャッチされない例外が原因でスレッド スレッド 8 が終了する 07-06 17:14:43.990: E/AndroidRuntime(478): java.lang.NullPointerException 07-06 17:14:43.990: E/AndroidRuntime(478): com.mendel.strips.Strips$StripsEngine.run(Strips.java:82) 07-06 で17:14:43.990: E/AndroidRuntime(478): java.lang.Thread.run(Thread.java:1096) 07-06 17:14:43.999: I/dalvikvm(478): threadid=7: に反応シグナル 3 07-06 17:14:43.999: E/dalvikvm(478): スタック トレース ファイル '/data/anr/traces.txt' を開けません: 許可が拒否されました81) 07-06 17:14:43.869: E/BaseSurfaceHolder(478): java.lang.Thread.run(Thread.java:1096) 07-06 17:14:43.972: W/dalvikvm(478): スレッド ID =15: キャッチされない例外で終了するスレッド (group=0x4001b188) 07-06 17:14:43.979: E/AndroidRuntime(478): キャッチされないハンドラー: キャッチされない例外が原因でスレッド スレッド 8 が終了する 07-06 17:14:43.990: E/AndroidRuntime(478): java.lang.NullPointerException 07-06 17:14:43.990: E/AndroidRuntime(478): com.mendel.strips.Strips$StripsEngine.run(Strips.java:82) 07-06 で17:14:43.990: E/AndroidRuntime(478): java.lang.Thread.run(Thread.java:1096) 07-06 17:14:43.999: I/dalvikvm(478): threadid=7: に反応シグナル 3 07-06 17:14:43.999: E/dalvikvm(478): スタック トレース ファイル '/data/anr/traces.txt' を開けません: 許可が拒否されましたjava:1096) 07-06 17:14:43.972: W/dalvikvm(478): threadid=15: キャッチされない例外で終了するスレッド (group=0x4001b188) 07-06 17:14:43.979: E/AndroidRuntime(478):キャッチされていないハンドラー: キャッチされていない例外が原因で終了するスレッド スレッド 8 07-06 17:14:43.990: E/AndroidRuntime(478): java.lang.NullPointerException 07-06 17:14:43.990: E/AndroidRuntime(478): at com.mendel.strips.Strips$StripsEngine.run(Strips.java:82) 07-06 17:14:43.990: E/AndroidRuntime(478): java.lang.Thread.run(Thread.java:1096) 07 で-06 17:14:43.999: I/dalvikvm(478): threadid=7: シグナル 3 07-06 17:14:43.999: E/dalvikvm(478): スタック トレース ファイル '/data/anr を開けません/traces.txt': 権限が拒否されましたjava:1096) 07-06 17:14:43.972: W/dalvikvm(478): threadid=15: キャッチされない例外で終了するスレッド (group=0x4001b188) 07-06 17:14:43.979: E/AndroidRuntime(478):キャッチされていないハンドラー: キャッチされていない例外が原因で終了するスレッド スレッド 8 07-06 17:14:43.990: E/AndroidRuntime(478): java.lang.NullPointerException 07-06 17:14:43.990: E/AndroidRuntime(478): at com.mendel.strips.Strips$StripsEngine.run(Strips.java:82) 07-06 17:14:43.990: E/AndroidRuntime(478): java.lang.Thread.run(Thread.java:1096) 07 で-06 17:14:43.999: I/dalvikvm(478): threadid=7: シグナル 3 07-06 17:14:43.999: E/dalvikvm(478): スタック トレース ファイル '/data/anr を開けません/traces.txt': 権限が拒否されましたキャッチされていないハンドラー: キャッチされていない例外が原因で終了するスレッド スレッド 8 07-06 17:14:43.990: E/AndroidRuntime(478): java.lang.NullPointerException 07-06 17:14:43.990: E/AndroidRuntime(478): at com.mendel.strips.Strips$StripsEngine.run(Strips.java:82) 07-06 17:14:43.990: E/AndroidRuntime(478): java.lang.Thread.run(Thread.java:1096) 07 で-06 17:14:43.999: I/dalvikvm(478): threadid=7: シグナル 3 07-06 17:14:43.999: E/dalvikvm(478): スタック トレース ファイル '/data/anr を開けません/traces.txt': 権限が拒否されましたキャッチされていないハンドラー: キャッチされていない例外が原因で終了するスレッド スレッド 8 07-06 17:14:43.990: E/AndroidRuntime(478): java.lang.NullPointerException 07-06 17:14:43.990: E/AndroidRuntime(478): at com.mendel.strips.Strips$StripsEngine.run(Strips.java:82) 07-06 17:14:43.990: E/AndroidRuntime(478): java.lang.Thread.run(Thread.java:1096) 07 で-06 17:14:43.999: I/dalvikvm(478): threadid=7: シグナル 3 07-06 17:14:43.999: E/dalvikvm(478): スタック トレース ファイル '/data/anr を開けません/traces.txt': 権限が拒否されましたrun(Thread.java:1096) 07-06 17:14:43.999: I/dalvikvm(478): threadid=7: シグナル 3 に反応しています 07-06 17:14:43.999: E/dalvikvm(478): できませんスタック トレース ファイル '/data/anr/traces.txt' を開く: 許可が拒否されましたrun(Thread.java:1096) 07-06 17:14:43.999: I/dalvikvm(478): threadid=7: シグナル 3 に反応しています 07-06 17:14:43.999: E/dalvikvm(478): できませんスタック トレース ファイル '/data/anr/traces.txt' を開く: 許可が拒否されました
android - Androidアプリは、強制終了時に「onDestroy()」を呼び出しません(ICS)
Bluetooth通信を使用して(独自のプロトコルを使用して)Androidアプリを開発していますが、アプリが強制終了された瞬間を捉える必要があります。
「onDestroy()」メソッドを使用したかったのですが、アプリが強制終了されるたびに呼び出されるわけではありません。戻るボタンを押すと呼び出され、タスクマネージャーからアプリを強制終了すると呼び出されることがあります。
問題は、アプリが強制終了される前の瞬間をどのように捉えることができるかということです。
これが私が使おうとしたコードです:
残念ながら、finish()が呼び出されることはなく、タスクマネージャーからアプリを閉じるたびにonDestroyが呼び出されることもありません。
どうすればこれを処理できますか?
android - Android の戻るボタンの動作
デフォルトのインテント フラグで起動され、デフォルトの動作をするデフォルトの空のアクティビティがあるとします。ユーザーがデバイスの戻るボタンを押します。活動は消えます...しかし、実際にはどうですか?
- 戻るボタンを押すと同じように動作します
finish()
か? - アクティビティはすぐに破棄されますか (
onDestroy
呼び出されます)? - アクティビティは破棄されることが保証されていますが、すぐには破棄されませんか?
- アクティビティが破棄されず、将来このアクティビティが開始されたときにこのインスタンスが再利用される可能性はありますか? (つまり、
onPause
andonStop
->onStart
andのみonResume
が呼び出されますか?)
信頼できる回答を探しているので、ここで何が起こっているのかよくわからない場合は回答しないでください。
android - 別のアプリケーションをクリックすると、アプリケーションが自動的に破棄されますか?
私のアプリケーションは、別のアプリケーションを選択できると同時に実行されています。私のアプリケーションは自動的に破棄されます。破壊を避ける方法。
android - onDestroy がありません。オートコンプリートが役に立たない
アクティビティの最後にonDestroy()を呼び出したいと思います。
これが私が入れたものです:
しかし、それは決して呼び出されません。確かに、オートコンプリートを使用すると、onDestroy は表示されません...しかし、onPause、onCreate、onStop .... はい
ここで何かが恋しいですか?やっぱり私はバカなのかもしれません…