Подтвердить что ты не робот

Пользовательское приложение не создано на Android M (окончательный просмотр)

Документация Application#onCreate() гласит:

Вызывается, когда приложение запускается, до того, как были созданы какие-либо объекты деятельности, службы или получателя (за исключением поставщиков контента).

Это справедливо на практике до тех пор, пока я помню, и многие приложения полагаются на это для инициализации различных материалов. Однако это поведение, по-видимому, изменилось с последним предварительным просмотром Android M (выпущено вчера).

Когда приложение впервые установлено и запущено, пользовательский Application onCreate() не будет вызываться. Вместо этого он немедленно запустит первый Activity.

Это происходит только при первом запуске приложения. Все последующее приложение запускает работу и ведет себя так, как ожидалось, и пользовательский Application onCreate() вызывается перед запуском Activity.


Пример кода

BaseApplication

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

FirstActivity

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

манифест App

<?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

Снимок экрана ниже показывает вывод Logcat после запуска приложения из чистой установки и затем запускает его снова через 8 секунд.

Выход Logcat

4b9b3361