14

状態のドキュメントApplication#onCreate():

アプリケーションの開始時、アクティビティ、サービス、またはレシーバー オブジェクト (コンテンツ プロバイダーを除く) が作成される前に呼び出されます。

これは、私が覚えている限り実際に当てはまり、多くのアプリケーションがさまざまなものを初期化するためにこれに依存しています。ただし、この動作は、最新の Android M プレビュー (昨日リリース) で変更されたようです。

アプリケーションが最初にインストールされて起動されるとき、 customは呼び出されませんApplication。代わりに、最初のものをすぐにonCreate()起動します。Activity

これは、最初のアプリケーションの起動時にのみ発生します。次のすべてのアプリケーションが動作を開始し、期待どおりに動作し、カスタムApplicationonCreate()呼び出されてからActivity.


コード例

ベースアプリケーション

public class BaseApplication extends Application {
   @Override
   public void onCreate() {
      super.onCreate();
      Log.d("App", "Test: Application.onCreate()");
   }
}

最初のアクティビティ

public class FirstActivity extends Activity {
   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      Log.d("App", "Test: Activity.onCreate()");
   }
}

アプリ マニフェスト

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="app.package.name" >

   <application android:name=".application.BaseApplication" >
   [...]
   </application>
</manifest>

Logcat 出力

以下のスクリーンショットは、クリーン インストールからアプリを起動し、8 秒後に再度起動した後の Logcat 出力を示しています。

Logcat 出力

4

1 に答える 1

3

これは、公式の問題トラッカーによると、Android 6.0 の最終リリースで修正されています: https://code.google.com/p/android-developer-preview/issues/detail?id=2965

于 2015-10-29T17:20:37.690 に答える