【发布时间】:2015-02-25 13:04:53
【问题描述】:
昨天我尝试编写我的内容提供程序并对其进行测试。不幸的是,这段代码:
if(loader.getId() == 1)
getContentResolver().insert(Uri.parse("content://com.example.djak.contentprovidertest.provider/cte"), values);
做某事,因此 onLoadFinished 被无限调用。有人知道发生了什么吗?当我删除它时 onLoadFinished 只被调用一次。 什么时候调用 onLoaderReset ?有人可以给我一个真实的例子来测试它吗? 提前致谢。
这是加载器的所有代码:
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
loader = new CursorLoader(this, Uri.parse("content://com.example.djak.contentprovidertest.provider/cte"),
null, null, null, null);
Log.d("Some looong data", "Create");
return loader;
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
ContentValues values = new ContentValues();
values.put("user", "s");
if(loader.getId() == 1) getContentResolver().insert(Uri.parse("content://com.example.djak.contentprovidertest.provider/cte"), values);
Log.d("Some looong data", "Finish");
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
Toast.makeText(this, "RESET", Toast.LENGTH_SHORT).show();
}
我设置了我的一个按钮的 onClickListener:
findViewById(R.id.temp_button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getLoaderManager().initLoader(1, null, MainActivity.this);
}
});
我只是尝试一下,但我不知道为什么 onLoadFinished 会被无限次调用。
【问题讨论】:
-
不完整的代码对你没有帮助
-
好的,我添加加载器的所有代码。
标签: android android-contentprovider loader