【发布时间】:2014-05-24 04:58:53
【问题描述】:
我在我的应用程序中使用 AsyncLoader。 我想知道 onLoadFinished 在方向改变期间我的片段在哪个方法之后运行?
加载程序第一次运行时会显示一个对话框
@Override
public Loader<ArrayList<HashMap<String, Object>>> onCreateLoader(int id,Bundle bundle)
{
handler.sendEmptyMessage(SendRequestLoader.ShowDialog);
return loader;
}
我将 listarray 添加到我的适配器
@Override
public void onLoadFinished(Loader<ArrayList<HashMap<String,Object>>> loader,ArrayList<HashMap<String,Object>> list)
{
Log.e("", "---onLoadFinished---");
if(list!=null)
Log.e("before","-------adapter.size()----"+adapter.getCount());
if(list!=null)
{
int count=list.size();
for(int i=0;i<count;i++)
{
adapter.add(list.get(i));
}
}
handler.sendEmptyMessage(((SendRequestLoader)loader).getMessage());
if(list!=null)
Log.e("","-------list.size()----"+list.size());
Log.e("after","-------adapter.size()----"+adapter.getCount());
}
@Override
public void onLoaderReset(Loader<ArrayList<HashMap<String, Object>>> loader)
{
}
我保存对话框状态以在方向更改中显示对话框。但我不确定 onLoadFinished 方法是否可以在 onSaveInstanceState 方法之后运行,我是否使用正确的方法来管理我的加载程序?
@Override
public void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
if(isshowingDialog)
outState.putBoolean("isshow",true);
else
outState.putBoolean("isshow",false);
outState.putParcelable("parcle", new Parcable(adapter.getArrayList()));
}
【问题讨论】:
-
你能提供更多细节吗?看了你的帖子很多次了,不明白你的疑惑。
-
我想在数据加载前后显示和关闭对话框。但我不知道我是否在 onLoadFinished 运行时改变方向。它可以在 onSaveInstanceState 之后运行还是不运行
-
-1 因为放弃了这个问题!