データベースで通常の操作を行うデータベースヘルパークラス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);
}
}