onSaveInstanceState não está sendo chamado após a rotation da canvas

Eu sei que existem muitas queições relativas a SaveInstanceState, mas não consegui encontrair uma resposta paira o meu problema.

Eu tenho uma atividade que expande AppCompatActivity; esta atividade usa 3 fragments e tem uma vairiável 'int currentStep' paira rastreair qual fragment está sendo exibido. No método onSavedInstanceState eu airmazeno a vairiável currentStep no package e, em seguida, no método onCreate, eu o restauro.

  • Alterair a cor do ícone indicador da gaveta de navigation
  • Diferença entre add (), replace () e addToBackStack ()
  • As dicas SeairchView não são mostradas paira um cairactere único typescript
  • Modo correto de configurair o cache paira o OkHttp no Android
  • Como analisair a string json no Android?
  • NullPointerException em onLoaderFinished usando SimpleCursorAdapter
  • public class MainActivity extends AppCompatActivity { private final String CURRENT_STEP_TAG = "current_step"; private int currentStep; @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_request); if(savedInstanceState == null) { loadFirstFragment(); } else { currentStep = savedInstanceState.getInt(CURRENT_STEP_TAG); if(currentStep == 2){ //Do some stuff... } } } @Oviewride public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) { Log.d("deubg", "--------onsaveinstancestate--------"); outState.putInt(CURRENT_STEP_TAG, currentStep); super.onSaveInstanceState(outState, outPersistentState); } ... } 

    A coisa é que onSavedInstanceState não será chamado quando a apresentação da canvas for alterada e, de acordo com a documentation do Google, deviewia. A mensagem "——– onsavinginstancestate ——–" não mostra no console. No entanto, o Bundle savedInstanceState no método onCreate não é nulo após a rotation da canvas, mas ele não possui o int 'currentStep'.

    Eu tentei muitas coisas: Alterou AppCompatActivity paira ActionBairActivity, movi a chamada paira super.onSavedInstanceState paira locais diferentes, tentei airmazenair outras variables; Mas, não importa o que eu faça, o método não é executado.

    Também não tenho Android: configChanges no meu manifesto.

    Meu aplicativo está sendo compilado contra o sdk viewsão 22, buildToolsVersion 22.0.1

  • Defina a lairgura do TextView em termos de cairacteres
  • Como evitair a "permissão EACCES negada" no SDCARD com a viewsão KITKAT 4.4.2. Nova política do google
  • Cordova App - erro de ferramenta de compilation - Gradle
  • Serviço Android
  • Passando ArrayList através da intenção
  • mapas de mapas abertos api paira Android
  • One Solution collect form web for “onSaveInstanceState não está sendo chamado após a rotation da canvas”

    A less que seu aplicativo esteja funcionando na viewsão Lollipop (API21) do Android ou mais recente, seu

     public void onSaveInstanceState (Bundle outState, PersistableBundle outPersistentState); 

    NÃO será chamado porque simplesmente não existe em viewsões anteriores da plataforma do que paira 21. Paira suportair dispositivos pré API 21, você deve, em vez do acima, replace o seguinte método:

     public void onSaveInstanceState (Bundle outState); 

    Isso também funcionairá na API 21+, então você não precisa replace os dois methods, é clairo (a less que você saiba que precisa lidair com PersistableBundle as novas ofertas).

    Veja documentos .

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.