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

Пользовательский android.app.Application не стреляет onCreate event

Я получаю настраиваемое приложение из android.app.Application, и я не могу запустить его событие onCreate. Здесь реализация

import android.app.Application;

public class MyApplication extends Application {

    public MyApplication() {
        super();
    }

    @Override
    public void onCreate() {
        super.onCreate();
    }
}

И вот как я его использую:

MyApplication ctrl = new MyApplication();
4b9b3361

Ответ 1

Добавьте в свой AndroidManifest.xml

следующее:
<application
    android:name="MyApplication"
    android:debuggable="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name">
</application>

тогда ваш onCreate() будет запущен.

Ответ 2

Очень просто

В вашем AndroidManifest.xml в теге application введите имя своего подкласса application с помощью этого пути в атрибуте android:name.

Пример:

<application
...
android:name=".models.custom.BaseApplication"
...
> ... </application>

Ответ 3

Не создавайте его, вытащите его из Context.

Например, из Activity:

MyApplication ctrl = (MyApplication)getApplicationContext();

Дополнительная информация: Context.getApplicationContext()

Документация гласит, что onCreate() есть

Вызывается, когда приложение запускается, перед любым другим приложением объекты были созданы

Ответ 4

Фактически вы не создаете экземпляры своих действий с помощью оператора new. Вместо этого вы начинаете намерение следующим образом:

Intent start = new Intent(context, Classname.class);
context.startActivity(start);

При создании объекта с помощью оператора new, onCreate никогда не будет вызываться.

[EDIT] При создании приложений с помощью оператора new onCreate не будет вызываться [/EDIT]

[EDIT2] Вы можете создать статический метод, который возвращает приложение следующим образом:

public static MyApplication getApp() {
    return mInstance;
}

[/EDIT2]

Ответ 5

Как сказал Баладжи, если вы все еще сталкиваетесь с проблемой даже после упоминания имени класса в теге приложения

<application
    android:name="MyApplication"
    android:debuggable="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"> </application>

Затем попробуйте следующее:

Попробуйте отключить Instant Run, а затем очистите проект и перестройте его, а затем запустите снова. Это сработало для меня. Спасибо.

Ответ 6

У меня была эта проблема, и я обнаружил, что в моем случае вся проблема была связана с телефоном. Я перезагрузил телефон, и это решило проблему.