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のコードを見ずに確実に言うことはできませんが、nullコンテキストを持つことは決して良い考えではありません。自分の目で確かめてください... SQLiteOpenHelperのソース

于 2012-06-06T01:06:05.937 に答える
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);
    }
}
于 2012-06-06T07:26:51.927 に答える