2014-01-12 3 views
1

안녕하세요, 앱에 돌아올 때 Fragment를로드하려고합니다. 세션 환경 설정에서 onPause() 및 session = "active"내 onResume();에서 session = "not active"라는 문자열을 설정하여이 작업을 수행하려고합니다. 문제는 내가 새로운 액티비티를 탐색 할 때도 onPause()를 실행하여 세션을 활성화되지 않도록 설정하는 것입니다. 결과는 한 활동에서 다른 활동으로 갈 때마다 내 조각이로드된다는 것입니다. 나는 그 조각이 데이터를 안전하게 유지하기위한 핀 입력을 포함한다고 언급해야한다. 그래서 요약하면 누구든지 사용자가 앱에 언제 돌아 왔는지를 감지하는 방법을 알고 있습니까?사용자가 앱을 다시 열 때 조각을로드하십시오. android

을 heres 내가 지금까지 시도 것을

@Override 
protected void onStop() { 
    // TODO Auto-generated method stub 
    super.onStop(); 
    EasyTracker.getInstance(this).activityStop(this); // Add this method. 
    saveStringToPreference(this, "user_session", "not_active"); 
    Log.v("Homepage", "onStop"); 
    Log.v("Homepage", "user_session= " + returnStringFromPreference(this, "user_session")); 
} 

@Override 
protected void onDestroy() { 
    // TODO Auto-generated method stub 
    super.onDestroy(); 
    saveStringToPreference(this, "user_session", "not_active"); 
    Log.v("Homepage", "onDestroy"); 
    Log.v("Homepage", "user_session= " + returnStringFromPreference(this, "user_session")); 
} 

@Override 
protected void onResume() { 
    // TODO Auto-generated method stub 
    super.onResume(); 
    saveStringToPreference(this, "user_session", "active"); 
    ActionBar actionBar = getActionBar(); 
    actionBar.hide(); 
    Fragment pinFragment = new PinFragment(); 
    FragmentManager pinFragmentManager = getFragmentManager(); 
    pinFragmentManager.beginTransaction().replace(R.id.content_frame, pinFragment).commit(); 

    Log.v("Homepage", "onResume"); 
    Log.v("Homepage", "user_session= " + returnStringFromPreference(this, "user_session")); 
} 



public void userPin(){ 
    if(userHasSetPin(this) == true){ 
     if(returnStringFromPreference(this, "user_session").equals("active")){ 
      fragment = new homePageFragment(); 
      fragmentManager = getFragmentManager(); 

      fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit(); 
     }else{ 
      ActionBar actionBar = getActionBar(); 
      actionBar.hide(); 
      Fragment pinFragment = new PinFragment(); 
      FragmentManager pinFragmentManager = getFragmentManager(); 
      pinFragmentManager.beginTransaction().replace(R.id.content_frame, pinFragment).commit(); 


     } 

    }else{ 
     ActionBar actionBar = getActionBar(); 
     actionBar.hide(); 

     Fragment pinSetupFragment = new PinSetupFragment(); 
     FragmentManager pinSetupFragmentManager = getFragmentManager(); 
     pinSetupFragmentManager.beginTransaction().replace(R.id.content_frame, pinSetupFragment).commit(); 

    }  

} 

userPin()을 (내에서 onCreate에서 실행)

답변

1

당신은 onPause와 onResume을 사용할 수 없습니다. 이렇게하는 방법에 대한 해결책은 this post을 참조하십시오.

관련 문제