qq_曹庆贽_03348738
getActivity() 相当于this 或者 Activity.this,是获取当前Activity的实例,生命周期随当前的Activity销毁而销毁;
getContext() 获取当前congtext的实例(如果使用场景是Activity则相当于 this, 如果使用场景是一个Server 那么获取的实例就是一个ApplicationContext())
Mae000
不明觉厉,要多学学了
botao555
1、确认是否写入了数据库,可以通过命令行看
2、数据写入数据库了,没有显示出来(也是我遇到的问题),原因是SmsProvider中的query写错了,正确的应该是:
@Nullable
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
int match = matcher.match(uri);
switch (match) {
case SMS_ALL:
break;
case SMS_ONE:
long id = ContentUris.parseId(uri);
selection = "_id=?";
selectionArgs = new String[]{String.valueOf(id)};
break;
default:
throw new RSIllegalArgumentException("Wrong URI:" + uri);
}
mDb = mHelper.getReadableDatabase();
Cursor cursor = mDb.query(SendedMsg.TABLE_NAME, projection, selection, selectionArgs, null, null, sortOrder);
cursor.setNotificationUri(getContext().getContentResolver(), URI_SMS_ALL);
//cursor.close();
return cursor;
}注意最后两行代码
xiaohuang007
ContentProvider的Uri,通过自定义的SmsProvider获取Cursor
慕丝2858173
你是不是没有设置SmsHistoryFragment的适配器,在setupListAdapter();方法后调用setListAdapter(mCursorAdapter); 就行了