每当我需要创建SQLiteOpenHelper'databasehelper'对象时,我需要在函数调用中传递上下文。
dbUtils.setEntityValues(this, moduleId, sendTo)
'this'参数指的是活动上下文。每次new databasehelper对象创建并执行db任务时。
DataBaseHelper dbHelper = new DataBaseHelper(context);
try {
dbHelper.openDataBase();
SQLiteDatabase db = dbHelper.getReadableDatabase();
从未扩展Activity或Application的类文件中,我无法创建databasehelper对象。有没有办法全局获取databasehelper对象?或者以任何方式在非活动的类中获取应用程序上下文??
我是一个Android初学者,请提出一些提示..
提前致谢, 乔
答案 0 :(得分:0)
乔,
您可以使用getApplicationContext()
或getBaseContext()
从不扩展上下文的类访问应用程序上下文。
您可能还想稍微阅读这个问题What's the difference between the various methods to get a Context?
祝你好运!答案 1 :(得分:0)
谢谢willytate,我解决了。我这样做的方式是......
class myActivity extends Activity {
public static Activity me = null;
...
protected void onCreate(Bundle icicle) {
...
me = this;
...
};
};
class myClass {
void myMthd() {
...
Intent myIntnt = myActivity.me.getIntent();
...
};
};
现在我可以创建'databasehelper'对象而不传递如下的上下文..
public DataBaseHelper() {
super(myActivity.me.getApplicationContext(), DB_NAME, null, 1);
this.myContext = myActivity.me.getApplicationContext();
}
再次感谢,
乔