2016-11-08 14 views

答えて

0

のOnCreate():このメソッドは、activityを作成するときに一度だけ呼び出されます。そのため、gobalstaticのすべてのコンテンツがそこに移動する必要があります。例 - これにはshared preferences,databasesの初期化が含まれます。

OnStart():このメソッドは、activityが画面上に表示されたときに呼び出されます。フォアグラウンド方式です。 OnStart()は、OnStop()で終わります。例:ABactivityとし、A activityが作成され、現在onStart()メソッドが呼び出されているとします。 1つがB activityに切り替わると、AのOnStop()メソッドが呼び出され、B activityが作成されます。したがってactivitiesに切り替えるとOnStart()OnStop()メソッドが呼び出されます。それはそれはOnStart()その後、初期化の意志で行われている場合OnCreate()方法で行われますが、activities切り替えるたびに行われる必要がありますので

だからあなたの質問の初期化に応じて、一度に行われます。

出所:onCreate()onStart()の違い?これはライフサイクルActivity | Android Developer

0
  1. あなたはそれを変更しない場合は任意のビューを初期化する必要はありませんについて、あなたのすべての障害をクリアしますこっち

    は見てみてください。
  2. 任意のアクティビティライフサイクルで、(アクセスする前に)あなたの希望どおりに初期化することができます。
  3. しかし、それをonCreate()で初期化することがベストプラクティスと言われています。

理由:

  1. あなたがライフサイクルを見れば、あなたのアプリのページが表示されていないとき、OnCreate関数が呼び出されます。 appが部分的に表示されるときにonStartが呼び出されるように、& onResumeは、完全に可視であるときに呼び出されます。だから、ほとんどすべての準備ができてから、それを見ています。それが一つの理由です。

  2. もう1つはfindViewByIdが少し高価です。だから、私たちは、アプリが見えるときにそれを見たくない。

  3. OnStart & onResumeは、別のページに行くと複数回呼び出すことがあります。したがって、複数回よりもすべてを1回だけ初期化することが望ましいです。

あなたの選択は今のところです。

関連する問題