問題タブ [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 - 親アクティビティが破棄されたかどうかを伝える
そこで、メイン アクティビティ (A) と、すべてが何かを実行し、作業をメインに報告して終了するその他のさまざまなサブ アクティビティを持つアプリを作成しました。
私が遭遇しているのは、ユーザーが画面 B または C でアプリを離れた場合、後で戻ってきて、dalvik がより多くの RAM のために私のアクティビティを破棄した場合です...アプリは B または C に戻り、読み取ります保存されたインテントからすべての初期化が行われ、何も起こらなかったかのように続行されます。彼らがアクティビティ A に戻るまでは、予期しないことから力を得ることができます。
オーバーライドonStop()
と呼び出しの終了をいじりましたが、これは少し焦土だと思います。そのアクティビティを離れて戻ってくるようにしたいと思います。しかし、基になるメイン アクティビティが破棄されたかどうかを検出し、アクティビティ スタック全体を破棄したいとも考えています。
読んでみると、常に呼び出されるとは限らないという考えが得られるため、onDestroy()
アクティビティ A の onDestroy にロジックを挿入することは信頼できません....何かアイデアはありますか?
java - 強制終了エラーを作成する終了時の戻るボタン
私は onDestroy の使用を避けようとしており、これをできるだけ単純にしたいと考えていますが、プログラムを終了すると強制終了エラーが発生します。理由がわからない。アプリケーションの主要部分のコードは次のとおりです。助言がありますか?
メイン アプリケーション コード
LogCat
mfc - MFC ダイアログの DestroyWindow() を呼び出す場所は?
私は現在、MFC アプリケーションのダイアログに取り組んでいますが、MFC についてはまったくの初心者です。
A
クラス(から派生CDialog
)を使用するクラスB
(から派生)があるとしましょうCDialog
。したがって、のメソッドをA::OnInitDialog()
呼び出します。create(...)
B
クラスBのデストラクタに含まれていることがわかりました
これでいいですか?私の理解では、B
のDestroyWindow()
メソッドを で呼び出す方がよいでしょうA::OnDestroy()
。そうですか?
ご協力いただきありがとうございます!
オリバー
android - Android:ユーザーがホームを押したときに切断する方法はありますが、画面の回転ではありませんか?
受信場所の更新を公開するなど、いくつかの目的で接続を維持するアプリケーションに取り組んでいます。Androidのやり方と他の回答からのアドバイスに従って、画面の回転時にアプリケーションを破棄して再作成するデフォルトのAndroidの動作をオーバーライドしていません。その点ではうまく機能します。
onRetainNonConfigurationInstance メソッドで接続を保持します。問題は、ユーザーがホームを押したとき、アプリケーションが最小化されたとき、または何らかの理由でフォーカスを失ったときに接続を閉じたいのですが、画面が回転したときではないため、onPause、onStop、または OnDestroy なしではこれを行うことができません。構成の変更時に次々に呼び出されるため、いくつかのチェック。現時点では、isFinishing() を使用してアプリケーションが閉じられているかどうかを確認していますが、ユーザーが Home を押した場合は、isFinishing() == true (これは理にかなっています) は必要ありません。
私が考えた1つの解決策は、アプリケーションが接続の更新を処理するスレッドにフォーカスを持っているかどうかを確認し、フォーカスがない時間が経過した場合は単純に閉じることですが、これを行うためのより良い方法が必要だと思いますか?
お時間をいただきありがとうございます。
(投稿された回答を読んだ後、アクティビティのライフサイクルとonRetainNonConfigurationInstanceに関して物事を明確にするために編集されました)
android - Android - Listview のアイテムをクリックすると、メディア プレーヤー サービスが破棄される
私は現在 を持ってlistview
おり、アイテムをクリックすると が実行されservice
ますmediaplayer
。実行中の別のアイテムをクリックするとlistview
、service
停止して新しいを実行する必要がありますservice
。これを処理する最良の方法は何ですか?を使用しonDestroy
ますか?どうもありがとう。
android - 構成変更シーケンスの一部として onDestroy() が呼び出されているかどうかを区別する方法は?
私のアクティビティでは、onDestroy() でいくつかの外部のもの (サービス) を破棄する必要があります。ただし、構成の変更が発生した場合 (キーボードが反転した場合など) は、すぐに復元されるため、これは必要ありません。
問題は、onDestroy() が Back キーを押したことが原因なのか、設定変更プロセスの一部なのかをどのように区別するかということです。
@CommonsWareの回答の後、それは非常に簡単になります)のようなもの:
android - Android-アクティビティでサービスを再開し、破棄時に破棄する
私は現在Activty
、作成時に開始して。でバインドすることを持っていservice
ます。これservice
にはがありmediaplayer
ます。私がやりたいのは、アクティビティがresumed
その後もservice
再生を続けるかどうかなどです。activity
が破壊された場合はstop
、service
。これまでのところ、アクティビティが再度アクティブ化されたときに再生を継続するサービスと、新しいアクティビティが作成されたときに停止するサービスの両方を取得できますが、両方を一緒に取得することはできません。何か提案やアイデアはありますか?ありがとう。以下のコード:
アクティビティクラス:
サービスクラス:
android - onDestroyでWordDBAdapterを閉じる
AndroidのonDestroyメソッドでWordDBAdapterオブジェクトを閉じる必要があります。これらの1つは他よりも優れていますか?
- - - また - - -
ありがとう!
android - onDestroyは、画面が表示されるたびに呼び出されます
スクリーンオフ状態から戻るたびに、アプリケーションが強制終了されます。アプリが行うすべての情報を取得しましたが、なぜonDestroyが呼び出されるのかわかりません。アプリケーションでこの動作が見られるのは初めてです。
タブホストが含まれているため、私のメインアクティビティはtabActivityを拡張します。私はそれがそれを拡張しなければならないことを読みました、さもなければそれはFCになります。私の問題がこれに関連しているかどうかわかりませんか?!ああ、それはオブザーバーを実装していますが、これは問題ないはずです。
ログは次のとおりです。
クレイジーなことは、画面が再びオンになった後、ほとんどの場合onDestroyを呼び出すことです。また、画面が消える前にこれを行うのに十分な時間がある場合もあります。しかし、それが再び続いた後、それは再び同じことをします...
誰かが私のためのヒントやこの問題を解決する方法についての情報を持っていることを願っています。
これが重要かどうかはわかりませんが、アプリケーションにはandroid2.1-update1sdkを使用しています。
編集:
アプリケーションは実際のAndroidデバイスでテストされます。
不要な行と情報をすべて削除した基本的なコードを次に示します。
EDIT2:
さて、私は何も初期化せずに、次にアクティビティを拡張するだけで、またはオブザーバーを実装せずにアプリケーションをテストしましたが、私の変更は効果がありませんでした。電話をスリープ状態にしてからウェイクアップするたびに、電話がかかってきonDestroy()
ますか?!
EDIT3:
わかりました、私は何か面白いものを見つけました。
まず、これが私のAndroidManifest.xmlです
を削除するとすぐにscreenOrientation="landscape"
、デバイスをウェイクアップするたびにアプリケーションが破棄されることはありません。私はそれを10回以上試しましたが、それ以上の呼び出しはありませんonDestroy()
だから私はこれをコードで設定する必要があると思いますか?!ヒントやコードはありますか?
android - onDestroy を呼び出さずに Android サービス onCreate が複数回呼び出される
私のアプリでは、サービスを使用してサーバーと通信します。Service は、複数のメッセージ キュー スレッドを生成して、優先度の異なるタスクを処理します。
このモデルは、大きな問題なく約 1 年間使用されています。onCreate
しかし、最近、サービス クラスの が複数回呼び出されていることがわかりました。onDestroy
2 つの呼び出しの間に呼び出されることはありませんonCreate
。したがって、既存のスレッドを強制終了する機会がありませんでした。この動作が発生すると、サービス内でスレッドが重複します。
私が変更した唯一のことは、ユーザーがアプリにサインインするフォアグラウンド サービスとしてサービスを実行することです。フォアグラウンド サービスが問題を引き起こしているかどうか疑問に思っています。
何か案は?