2014-01-12 2 views
1

Привет, я пытаюсь загрузить фрагмент, когда возвращается в приложение. Я пытаюсь сделать это, установив строку в настройках системы, которая говорит session = "not active" в моей onPause() и session = "active" в моей onResume(); проблема в том, что когда я перехожу к новому действию, он также запускает onPause(), тем самым делая сессию неактивной. результат заключается в том, что каждый раз, когда я перехожу от одной активности к другой, мой фрагмент загружается. я должен упомянуть, что фрагмент содержит вход для ввода данных, чтобы защитить данные, поэтому мне это нужно. поэтому, чтобы подвести итог, кто-нибудь знает, как определить, когда пользователь вернулся в приложение?фрагмент загрузки, когда пользователь снова открывает приложение android

Вот что я пытался до сих пор

@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 для получения решений о том, как это сделать.

Смежные вопросы