どのようにいつ、Androidの活動のライフサイクルのメソッドをオーバーライドするには?
Read this article on my blog for a better experience :)
昨日、私はStackOverflow question .
記事のOP(原文)には次のようなシナリオがありました.
彼は
ProgressDialog
活動中.アフタープレスCardView
瞑想セッションに対応する活動でProgressDialog
3秒間表示され、他のアクティビティが開きますm1
アクティビティ.彼が直面した問題は
MeditationActivity
, the ProgressDialog
続けて、決して止まりませんでした.彼はユーザーが戻ってくると、進捗ダイアログが閉じられていた
m1
アクティビティMeditationActivity
.質問を読んだ直後に、1つの活動のライフサイクルに存在するデフォルトメソッドをオーバーライドすることができますし、そこからのダイアログを却下することを心に打つ必要があります!
Androidの活動のライフサイクルは次のようになります.
これは役人からのイメージですandroid documentation
フローチャートから見ると
onResume()
別の画面からのアクティビティーに戻るたびに呼び出されるメソッドです.それで、我々がダイアログを解雇するために論理を置くべき場所であるようです!次のようにします.
@Override
public void onResume(){
super.onResume();
if(progressDialog != null) progressDialog.dismiss();
}
NULLチェックはprogressDialog
を押すとCardView
. そして、それが以前に初期化されるならば、それからprogressDialog
.これは、Androidによって提供されたデフォルトのライフサイクル方法をオーバーライドできる完璧な例でした
Activity
ライフサイクルに係るアクションを実行する.Here's my answer StackOverflowの元の質問に!StackOverflowの質問にもっと説明しますので、HashNodeの上で次のように考えてください.
この記事を参考にしてください.
Reference
この問題について(どのようにいつ、Androidの活動のライフサイクルのメソッドをオーバーライドするには?), 我々は、より多くの情報をここで見つけました https://dev.to/gouravkhunger/how-and-when-to-override-android-activity-s-lifecycle-methods-28bテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol