我有一个静态函数,只要我的后台服务获得一个新位置就会调用它。在这个函数中,我想采用传入的坐标并将它们保存在我的数据库中。我可以传递'null'作为上下文来创建数据库帮助程序的实例,或者有更好的方法来执行此操作。感谢。
public static void locationHasChanged() {
final wd_DatabaseHelper helper = new wd_DatabaseHelper(null, "myDB.db", null, 1);
}
答案 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);
}
}