0

我编写的应用程序类遇到了一些问题。我只是想在我的活动中访问它,但似乎应用程序从未被 android 系统实例化(因此也从未调用过 onCreate)。在这一点上,我唯一的疑问是 android 是否可以实例化清单中声明的​​所有应用程序,或者只实例化一个。

这是代码:

package org.dyndns.bertuz83.test.applicationTst;

import android.app.Application;

public class MyApplication extends Application{
private String prova="";

private static MyApplication instance;  

@Override
public void onCreate() {
    super.onCreate();
    instance= this;

    this.prova="ciao!";
}

public static MyApplication getInstance(){
    return instance;
}

public String getProva(){
    return this.prova;
}
}

清单看起来像:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" 
    android:name="org.dyndns.bertuz83.test.applicationTst.MyApplication">
    <activity
        android:name="org.dyndns.bertuz83.test.applicationTst.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

<application 
    android:allowBackup="true"
    android:name="org.dyndns.bertuz83.test.applicationTst.MyApplication"></application>
</manifest>

如您所见,我运行的活动是在另一个应用程序下声明的,但我认为第二个应用程序无论如何都会被初始化(实际上,如果我添加 android:name="...MyApplication",我的应用程序已正确初始化)!我错了吗?

4

1 回答 1

2

您只能拥有一个应用程序类和实例。

顺便提一句。你不需要private static MyApplication instance;。您可以使用Activity.getApplication(). 如果您仍然需要它:您正在开始意大利面条代码。

于 2013-04-20T15:49:34.087 回答