2013-02-08 3 views
1

레이아웃이없는 조각을 사용합니다 (백그라운드에서 파일을 다운로드 함). 액티비티가 처음 생성 될 때 한 번 추가합니다. 액티비티가 처음으로 생성되면 액티비티가 스크린 오리엔테이션 후에 다시 첨부된다고 가정합니다.
활동에서 onCreate :화면 회전 후 Android 조각이 추가되지 않습니다.

if (savedInstanceState == null) { 
    getSupportFragmentManager().beginTransaction() 
      .add(new FragmentDownloadApp(), FragmentDownloadApp.TAG) 
      .commit(); 
} else { 
    if (savedInstanceState.containsKey(STATE_SELECTED_NAVIGATION_ITEM)) { 

조각 onActivityCreated :

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    // this is really important in order to save the state across screen 
    // configuration changes for example 
    setRetainInstance(true); 

    // ---- magic lines starting here ----- 
    // call this to re-connect with an existing 
    // loader (after screen configuration changes for e.g!) 
    LoaderManager lm = getLoaderManager(); 
    if (lm.getLoader(LOADER_DOWNLOAD_APP) != null) { 
     lm.initLoader(LOADER_DOWNLOAD_APP, null, mDownLoader); 
    } 
    // ----- end magic lines ----- 
} 

그리고 오류 :

public void onPositiveClick() { 
      FragmentDownloadApp fragment = (FragmentDownloadApp) getSupportFragmentManager() 
        .findFragmentByTag(FragmentDownloadApp.TAG); 
      fragment.startDownload(mAppToDownload); 
     } 

여기에 NullPointerException이 나타납니다!

답변

0

찾을 답 :

@Override 
public void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); // NEED THIS! 
관련 문제