我有一个数据库帮助程序类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);
}
}
答案 0 :(得分:0)
替换此行:
DbHelper dbHelper= new DbHelper (this);
用这个:
DbHelper dbHelper= new DbHelper (ItemStateService.this);