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;
}
誰でもこれについてコメントできますか?このように毎回返す新しいオブジェクトを作成することになっていますか? 「オブジェクトが変更されたため、同じオブジェクトであっても、すべての更新が実行されていることを確認してください」というフラグを設定できますか?