問題タブ [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.

0 投票する
9 に答える
314895 参照

android - Android アクティビティのライフ サイクル - これらすべてのメソッドは何のためのものですか?

Android アクティビティのライフサイクルとは? 初期化中に非常に多くの類似したメソッド ( onCreate()onStart()、) が呼び出され、最後に非常に多くのメソッド ( 、 、 ) が呼び出されるのはなぜですか?onResume()onPause()onStop()onDestroy()

これらのメソッドはいつ呼び出され、どのように適切に使用する必要がありますか?

0 投票する
1 に答える
4193 参照

android - Android: Dalvik がこのアクティビティを強制終了したときに Activity.onDestroy() が呼び出されない

について混乱していActivity.onDestroy()ます。アクティビティが破棄されたときにいくつかのリソースを解放する必要がありますが、「戻る」キーを押したときに onDestroy() が呼び出されたようですが、Dalvik によってアクティビティが強制終了されたときではありません。ログを追加するだけでテストしました:

Log.v("my_tag", "onDestroy() called");

onCreate() メソッドでも同じです。

Log.v("my_tag", "onCreate() called");

次に、アクティビティを開始すると、ログに表示されます: onCreate() called. 「戻る」キーを押してからアクティビティを再度開始すると、次のように表示されます。

次に、「ホーム」キーを押してアクティビティに再度移動しますが、ログは変更されません。ここで大丈夫です。

次に、「ホーム」キーをもう一度押して、本当に「重い」アプリケーションをいくつか起動します。ログには onDestroy() については何もありませんが、アクティビティを再度開始すると、ログに次のように表示されます: onCreate() called! そのため、onDestroy() は呼び出されませんでしたが、Activity は強制終了されました。どうしたの?

0 投票する
2 に答える
1439 参照

android - アクティビティの破棄が機能しないときに Android スレッドが中断する

私はアンドロイド開発が初めてです。画像をロードしてimageViewで更新するスレッドを作成するアクティビティがあります。スレッドは「無限ループ」を実行します。アクティビティが停止したときにスレッドも停止したい。以下に、私が実装したサンプルを示しますが、例外がスローされ、スレッドが引き続き機能するか、アプリがクラッシュします。助言がありますか?

完全なコードを書いていないことを申し訳ありませんが、私はコードを持っている家にいません。正常に停止するには何を変更すればよいですか?

また、パブリック静的ブール値を設定し、onDestroy を false に設定する別のトリックも試しました。

スレッドでは、「無限ループ」は次のように機能します。

スレッド内:

onDestroy:

では、このトリックでは、ループが終了するため、スレッドは操作が終了したときに強制終了されますか?

0 投票する
1 に答える
474 参照

android - 破壊された活動から属性をリサイクルしますか?

活動や物の破壊に疑問があります。

アクティビティをAsyncTaskにアタッチおよびデタッチしている間、ArrayAdapterをasynctaskから変更しません(コードを参照)。したがって、私が得たのは、複数のアクティビティがアタッチおよびデタッチされ(向きが変わるはずです)、1つのアダプタを実行および変更する1つのタスクだけです。これは、タスクを作成した最初のアクティビティからのものです。したがって、onCreate()でタスクをアタッチするときは、タスクを保持するアダプターをアダプターに設定するだけで、すべての値が処理されます(この例では、数字のダミーリストのみ)。

どうすればこれが可能ですか?onDestroy()はアクティビティ自体とその属性を消去すると思ったので、AsynkTaskから元のアクティビティのArrayAdapterにアクセスしようとすると、nullポインター例外などが発生しますが、以下のコードは機能します。

これは、タスクがArrayAdapterオブジェクトへのアクティブな参照を保持しているため、削除されないためですか?それとも何か他のものですか?

また、onRetainNonConfigurationInstance()からアクティビティの属性を返した別の「同様のケース」を経験しました。たとえば、A aは、B b(アクティビティの別の属性)を可視化します。次に、aを介してbインスタンスにアクセスしようとすると、問題はなく、2つのインスタンス(aとb)を保持するためのラッパーが必要だと思いました。そうしないと、bにアクセスしようとすると例外が発生します(これは私が行います)。実際には保存しません)。私が利用できないはずだったオブジェクトが実際にそこにある前のケースが関連する幅であるかどうかはわかりません。おそらく、それらへのアクティブな参照が削除を引き起こさないためですか?

ありがとうございました!

0 投票する
3 に答える
4926 参照

android - Android:画面の回転、破棄およびサービスの難問

SDK デモの Bluetooth チャットの例を変更して、arduino を搭載した Bluetooth LED マトリックスを制御できるようにしました。チャット プログラムを使用して、Bluetooth 経由でディスプレイにメッセージを送信できます。でも問題があります。縦向きと横向きの 2 つの画面レイアウトを作成しました。このようにして、向きに関係なく、インターフェイスが電話のほとんどのスペースを占めるようにすることができます。

問題は、電話が回転している場合、OnDestroy() が呼び出されて、新しいレイアウト (横向きまたは縦向き) をリロードすることです。OnDestroy() ルーチンでは、Bluetooth リンクが確立されている場合は破棄します。

ここの他の投稿を読んで、「android:configChanges="orientation"」をマニフェストに追加することで、サービスが停止するのを防ぐことができることがわかりました。これを行うと、画面を回転させたときに、ディスプレイへの Bluetooth リンクが終了しなくなりましたが、画面が横向きモードで再描画されなくなりました。

これを修正するために、接続を終了する「if mchatservice...」セクションを削除することを考えていますが、アプリケーションが最終的に終了したときにコードを実行する必要があります。

接続を終了せずに、回転時に画面を再描画する方法はありますか? そうでない場合は、いつでもサービス コードを OnPause() イベントに移動できると思いますが、アプリがフォアグラウンド フォーカスを失うと、接続が終了します。

他の方法はありますか?

ありがとう。

0 投票する
2 に答える
1390 参照

android - Android: サービスの super.onDestroy() を onDestroy() の外で呼び出す

音楽を再生しているサービスがあります。私はこのようにフェードアウト を実装しました:

これはfade_out Runnableです:

問題は、fade_outが終了する前にsuper.onDestroy() get が呼び出されるようになったため、このランナブル内で super.onDestroy() を呼び出したいのですが、どのようにですか?

0 投票する
1 に答える
285 参照

android - Androidでサービスが終了しようとしているときに、スレッドのクリーンアップを実行します

メモリ不足のためにサービスのonDestroyが呼び出された場合、メソッドで、ワーカースレッドに作業を終了し、システムがホスティングプロセスを強制終了する前に終了するのを待つように指示するようなことを行う必要がありますか?もしそうなら、システムは私が待つことをどのくらいの時間許しますか?ワーカースレッドをいつでもできるだけ速く終了できるようにする必要がありますか?

それとも私は完全に間違っていますか?


または多分私は尋ねるべきです:

ワーカースレッドをクリーンアップするための最も安全または最良のポイントはどこですか?または、そうするための最も安全または最良の方法は何ですか。または、そのようなことはまったくなく、スレッドはいつでも予告なしに強制終了されるように準備する必要がありますか?

0 投票する
1 に答える
936 参照

android - onDestroy()はonPause()の後に呼び出されます

ペイントアプリケーションを実装しています。私の問題は、オブジェクトに色を付けると、画面がスリープ状態になることがあります。画面を目覚めさせると、古いペイントが失われます。Onpauseの後にOnDestroyを呼び出すと、キャンバスが自動的にクリアされるという問題が見つかりました。Ondestroyの呼び出しを自動的に停止する方法。

0 投票する
2 に答える
307 参照

android - Android - onDestroy() 後に UI 要素のスコープを失う

電話が特定のタイプの充電器に接続され、「カーモード」または「運転モード」になったときにアプリケーションで発生する問題を処理しようとしています。

実行中のアプリケーションでは、onDestroy() が呼び出され、その直後に onCreate() が呼び出され、アプリケーションが正常に再起動します。ただし、UI 要素 (新しく作成されたメイン アクティビティ内) を更新するための後続の呼び出しは効果がなく、レイアウトの範囲を失ったように見えます。

私が説明していない onDestroy() が発生している可能性はありますか? 私は必要がないと思ったので、あまり onDestroy のクリーンアップを行いません。