[解決済み] DialogFragmentを正しく終了させるには?
質問
ドキュメントによると
dismiss()
メソッドから
Dialog
クラスのメソッドに追加します。
このダイアログを終了させ、画面から削除します。このメソッドは どのスレッドからでも安全に呼び出すことができます。このメソッドをオーバーライドしてはいけないことに注意してください。 の中で実装してください。
onStop()
.
私のコードでは、私が行っているのは
getDialog().dismiss()
を呼び出して却下しています。しかし、私はそれ以外のことは何もしていませんし、あるいは
onStop()
. だから、私は正確にどのように正しく解除するために質問しています
DialogFragment
を正しく破棄し、メモリリークなどを回避する方法を教えてください。
どのように解決するのですか?
tl;dr:
を閉じる正しい方法は
DialogFragment
を閉じるには
dismiss()
を直接DialogFragmentの
.
詳細 : その のドキュメントを参照してください。 の状態
ダイアログの制御(表示、非表示、終了のタイミングの決定)は、ダイアログを直接呼び出すのではなく、ここのAPIを通して行われるべきです。
したがって
getDialog().dismiss()
を呼び出してしまうので
dismiss()
を呼び出してしまうからです。
. その代わりに
dismiss()
メソッドを使用します。
public void dismiss()
フラグメントとそのダイアログを終了させます。フラグメントがバックスタックに追加された場合、このエントリを含むまでのすべてのバックスタック状態がポップされます。そうでなければ、フラグメントを削除するために新しいトランザクションがコミットされます。
ご覧のように、これはダイアログを閉じるだけでなく、そのプロセスに関与するフラグメントトランザクションを処理することも行います。
必要なのは
onStop
を使う必要があるのは、手動でクリーンアップする必要があるリソース (ファイルのクローズ、カーソルのクローズなど) を明示的に作成した場合だけです。その場合でも、私なら
onStop
よりも、DialogFragmentの
onStop
である。
関連
-
[解決済み] android.os.NetworkOnMainThreadException' を修正するにはどうすればよいですか?
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] グリッドレイアウトにおけるフリングジェスチャーの検出
-
[解決済み】プログレスダイアログとバックグラウンドスレッドがアクティブなときに、画面の向きが変わるのをどう処理するか?
-
[解決済み] AndroidにおけるフルスクリーンDialogFragment
-
[解決済み] 深くネストされたスタックから離れるとき、Fragmentのバックスタックをクリーンアップする方法はこれで良いのでしょうか?
-
[解決済み] handler.postDelayed()を停止する。
-
[解決済み] Android 6.0でBluetooth Low Energyスキャンを使用するには位置情報を有効にする必要があります。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Androidの連絡先リストを呼び出すには?
-
[解決済み] Android Studio - あいまいなメソッド呼び出し getClass()
-
[解決済み] Android StudioからADBを手動で再起動する方法
-
[解決済み] Android端末がHDPI画面かMDPI画面かを確認する方法は?
-
[解決済み] キャンバスに複数行のテキストを描画する
-
[解決済み] 非推奨のandroid.support.v4.app.ActionBarDrawerToggleの置き換え方法
-
[解決済み] AsyncTaskLoaderとAsyncTaskの比較
-
[解決済み] アンドロイドのスプラッシュスクリーンのサイズは、ldpi、mdpi、hdpi、xhdpiのディスプレイのためのものですか?- 例:1024X768ピクセル(ldpi)。
-
[解決済み] Android Studio: キーの復元ができない
-
[解決済み] フラグメントからツールバーを取得する方法