2014-05-24 112 views
-1

我在我的應用程序中使用AsyncLoader。 我想知道onLoadFinished運行後我的片段在方向更改過程中的哪個方法?android:在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) 
    { 
    } 

我保存對話框狀態定向change.but顯示對話框我不知道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())); 
} 
+0

你能提供更多的細節嗎?我多次閱讀你的帖子,不理解你的疑問。 –

+0

我想在數據加載之前和之後顯示和解除對話框。但是我不知道如果我在onLoadFinished運行時改變方向,可以在onSaveInstanceState之後運行或不需要 – zohreh

+0

我希望能幫到您:http://stackoverflow.com/a/23893185/575643 –

回答

0

基於您的評論: android:when run onLoadFinished in orientation change

要在屏幕改變了你應該做的一些工作人員的方向不鬆動對話狀態。

首先在AndroidManifest.xml你要設置的Activity的配置的變化:

<activity 
    android:name="my.app.pkg.MyActivity" 
    android:configChanges="orientation|screenSize" > 
</activity> 

之後,你會重寫onConfigurationChanged方法在Activity類時遇到這種事沒有處理任何事情:

@Override 
public void onConfigurationChanged(final Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
} 

在這裏你的Activity將不會重新啓動時,用戶旋轉設備和方向的變化,你不會失去你的異步人員。