我使用Loader从数据库中加载数据……当我的活动开始时,loader会正确地调用asynctask……但我不知道如何在点击按钮时加载数据!如果“onCreateLoader”在activity启动时自动调用,如何避免呢?
解决方案: 使用FragmentActivity……使用forceload()因为loadInBackground无法工作!使用getSupportLoaderManager()因为getLoaderManager()也无法工作,两者都是因为库给出的问题。但是……我不知道……我并不确定,但是…目前它可以工作!:P
public void onClick(View v) {
switch(v.getId()){
case R.id.button:
if(getSupportLoaderManager().getLoader(0) == null){
getSupportLoaderManager().initLoader(0, null, this).forceLoad();
}else{
getSupportLoaderManager().restartLoader(0, null, this).forceLoad();
}
break;
case R.id.another:
Toast.makeText(this, "another", Toast.LENGTH_SHORT).show();
break;
}
}
Loader
实例上调用forceLoad()
。 - BlundellonContentChanged()
也不行。对我有效的是这个:getSupportLoaderManager().restartLoader(0, null, MyActivity.this);
- Bevor