将空上下文传递给数据库帮助程序

时间:2012-06-06 00:34:08

标签: android sqlite

我有一个静态函数,只要我的后台服务获得一个新位置就会调用它。在这个函数中,我想采用传入的坐标并将它们保存在我的数据库中。我可以传递'null'作为上下文来创建数据库帮助程序的实例,或者有更好的方法来执行此操作。感谢。

public static void locationHasChanged() {
    final wd_DatabaseHelper helper = new wd_DatabaseHelper(null, "myDB.db", null, 1);
}

2 个答案:

答案 0 :(得分:0)

可能不是。通常,您的数据库助手会扩展SQLiteOpenHelper,上下文将用于调用openOrCreateDatabase()getDatabasePath()。我不能肯定地说没有看到wd_DatabaseHelper的代码但是有一个空的上下文从来都不是一个好主意。亲眼看看...... Source of SQLiteOpenHelper

答案 1 :(得分:0)

因为Android服务是一个上下文,你可以将“服务的这个”传递给你的方法

public class MyLocationHelper {
public static void locationHasChanged(Context context) {
    final wd_DatabaseHelper helper = new wd_DatabaseHelper(context, "myDB.db", null, 1);
    ....
}
}

public class MyService extends Service {

    private void onLocationHasChanged()
    {
        MyLocationHelper.locationHasChanged(this);
    }
}