我有AsyncTaskLoader<List<String>>
一个成员变量List<String>
mAddresses。在loadInBackground
,如果我创建一个新对象,填充它,然后返回它;onLoadFinished
按预期调用,所以我可以更新适配器,从而更新视图。
public List<String> loadInBackground()
{
// ListView updates properly only if I do this (strange?)
mAddresses = new ArrayList<String>();
// ... fill mAddresses ...
return mAddresses;
}
但是,如果我尝试使用相同的变量,即使它的值发生变化也会onLoadFinished
被调用:
public List<String> loadInBackground()
{
// ListView does not update with this!
if(mAddresses == null)
{
mAddresses = new ArrayList<String>();
}
// ... fill mAddresses ...
return mAddresses;
}
任何人都可以对此发表评论吗?我是否应该创建一个新对象以每次都像这样返回?是否可以设置任何标志“对象已更改,因此即使它是同一个对象,请确保执行所有更新?