Пользовательский 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();
Ответы
Ответ 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
У меня была эта проблема, и я обнаружил, что в моем случае вся проблема была связана с телефоном. Я перезагрузил телефон, и это решило проблему.