0

我有一个静态函数,每当我的后台服务获得新位置时就会调用它。在这个函数中,我想获取传入的坐标并将它们保存在我的数据库中。我可以通过“null”作为上下文来创建数据库助手的实例,还是有更好的方法来做到这一点。谢谢。

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

2 回答 2

0

可能不是。通常,您的数据库助手会扩展SQLiteOpenHelper并且上下文将用于调用openOrCreateDatabase()getDatabasePath(). 如果没有看到 wd_DatabaseHelper 的代码,我不能肯定地说,但是拥有空上下文绝不是一个好主意。自己看看... SQLiteOpenHelper 的来源

于 2012-06-06T01:06:05.937 回答
0

由于 android Service 是一个上下文,因此您可以将“服务的 this”传递给您的方法

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);
    }
}
于 2012-06-06T07:26:51.927 回答