0

データベースで通常の操作を行うデータベースヘルパークラスdbHelperがあります。データベースを操作に使用して開くアクティビティがあります。今、私はサービスを介してデータベースを編集したいと思います。そこで、以下のコードを実装すると、ヌルポイント例外エラーが発生します。onHandleIntentのすべてのコードを削除し、コンパイルしたログを配置すると。しかし、なぜここにヌルポイント例外があるのか​​理解できません。データベースは、アクティビティを通じて使用されたとおりに存在します。

Logcatは、DbHelper.getAllItems()でヌルポイント例外を言います。アクティビティクラスではなくServiceクラスに例外があるべき理由がわかりません。

public class ItemStateService extends IntentService {

public static final String C_NAME = "item";

static final String TAG = "ItemStateService";

public ItemStateService() {
    super(TAG);
}

protected void onHandleIntent(Intent intent) {

    DbHelper dbHelper= new DbHelper (this);
    Cursor cursor;
    cursor = dbHelper.getAllItems();
    int count = 0;
    for(cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
       count++;
    }
    Log.d(TAG, "dbHelper launched with item count "+count); 
}
}
4

1 に答える 1

0

次の行を置き換えます。

DbHelper dbHelper= new DbHelper (this);

これとともに:

DbHelper dbHelper= new DbHelper (ItemStateService.this);
于 2013-01-14T06:51:19.913 に答える