При повторном запуске приложения класс onCreate класса приложения не вызывается. Первый раз вокруг. Это воспроизводимая с помощью Android Studio, чтобы создать новое приложение, а затем добавить минимальное одноплодной класс Application:Класс приложения Android не уничтожается при уничтожении последнего действия
package com.whatever.test;
import android.app.Application;
import android.content.Context;
import android.util.Log;
public class MyApp extends Application {
private static MyApp singleton;
public static MyApp getInstance(Context context) {
Log.i("MyApp","---------->getinstance");
return singleton;
}
@Override
public void onCreate()
{
super.onCreate();
singleton = this;
Log.i("MyApp","---------->act oncreate");
}
}
и в своей деятельности, добавив в OnCreate:
MyApp myApp = MyApp.getInstance(this);
Log.i("MainActivity", "-------->onCreate");
и OnDestroy:
@Override
public void onDestroy()
{
super.onDestroy();
Log.i("MainActivity", "-->onDestroy");
}
manifest.xml содержит:
android:name=".MyApp"
Я нажимаю кнопку «Назад» в действии и вижу, что вызываемый вызов включен, но этого, по-видимому, недостаточно, чтобы удалить класс приложения. Если я убью приложение с помощью диспетчера приложений телефона и снова запустил, я снова увижу журнал App onCreate (но всего за один прогон).
Не должен ли этот класс быть уничтожен при удалении последнего действия? Это мое предположение. Конечно, я читал людей, говорящих, что этот класс может быть уничтожен при запуске приложения, поэтому вам придется обрабатывать перезагрузку любого состояния во время жизненного цикла приложения, но ничего не отражает мой сценарий.
Примечание: Испытано на физическом телефоне (Galaxy S3)
Спасибо за ответ, но ваш ответ, похоже, сосредоточен на действиях, и мой вопрос касается класса приложения. –
Я направляю вас к обсуждению Деяний, потому что ваше понимание приложений неверно. –
@DaneWhite, пожалуйста, попробуйте еще несколько разработок по классу Application, чтобы мы могли получить больше контекста. –