从Activity崩溃中访问Application类

时间:2012-02-15 15:13:42

标签: android

我对Android编程比较陌生。所以,请原谅我写作或要求任何愚蠢的东西。我正在开发一个Android应用程序,我在其中使用SQLite数据库来存储数据。我需要从更多活动访问这个数据库,经过一些研究后我得出结论,最好的方法是使用Application类。但这是我的程序停止工作的地方。

我有我的Application类:

import android.app.Application;

public class MyApplication extends Application {
    public CONTACT_DB = new CONTACT_DB(this);
}

其中CONTACT_DB类是我定义数据库的地方,并且有这个构造函数:

private final Context context;
private DatabaseHelper DBHelper;

public CONTACT_DB(Context ctx) {
    this.context = ctx;
    DBHelper = new DatabaseHelper(context);
}

现在在我的Activity中,我需要访问此数据库

public class Add_contact extends Activity {
    CONTACT_DB db;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.add_contact_layout);

        MyApplication appState = ((MyApplication)getApplicationContext());
        db = appState.db;
    }
}

我的程序工作正常,但是当它符合要求时 MyApplication appState = ((MyApplication)getApplicationContext()); 然后它崩溃了。我试图只使用一个简单的int而不是我的CONTACT_DB类,它仍然会崩溃。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您是否在清单中声明了自定义应用程序类?

例如:

<application
    android:name="com.yournamespace.appname.MyApplication"
    android:icon="@drawable/icon"
    android:label="@string/app_name">