关于Java:自定义ANDROID.APP应用程序不在创建事件上开机

custom android.app.Application not firing onCreate event

我从android.app.application派生了一个定制的应用程序,我无法启动它的onCreate事件。这是实现

1
2
3
4
5
6
7
8
9
10
11
12
13
import android.app.Application;

public class MyApplication extends Application {

    public MyApplication() {
        super();
    }

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

以下是我使用它的方式:

1
MyApplication ctrl = new MyApplication();


在您的AndroidManifest.xml中添加以下内容

1
2
3
4
5
6
<application
    android:name="MyApplication"
    android:debuggable="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name">
</application>

然后你的onCreate()就会被解雇。


非常简单

在您的AndroidManifest.xml中,在application标记内,输入您的application子类的名称,其路径在android:name属性下。

例子:

1
2
3
4
5
<application
...
android:name=".models.custom.BaseApplication"
...
> ... </application>


实际上,您并不使用new操作符创建活动的实例。相反,你开始这样的意图:

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

使用new运算符创建对象时,将永远不会调用onCreate

[编辑]使用new运算符创建应用程序时,也不会调用onCreate。[编辑]

[edit2]您可以创建一个静态方法,返回如下应用程序:

1
2
3
public static MyApplication getApp() {
    return mInstance;
}

[E/EdET2]


不要构造它,从Context获取。

例如,来自Activity

1
MyApplication ctrl = (MyApplication)getApplicationContext();

更多信息:context.getApplicationContext()。

文件上说onCreate()

Called when the application is starting, before any other application
objects have been created


正如Balaji提到的,即使在应用程序标签下提到类名之后,如果仍然面临问题

1
2
3
4
5
<application
    android:name="MyApplication"
    android:debuggable="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"> </application>

然后试试这个:

尝试禁用即时运行,然后清除项目并重新生成,然后再次运行。这对我很有用。谢谢。