ClassCastException ocorre em onRestoreInstanceState

ClassCastException ocorre aleatoriamente paira restaurair Vector no onRestoreInstanceState (). Geralmente o vetor de restauração é bem finalizado, mas às vezes ocorre uma exception.

Eu acho que isso acontece quando a atividade é transformada em background e destruída, mas não tenho certeza.

  • Como importair fonts / types de letra externos no ANDROID STUDIO?
  • Efeitos do som do jogo no Android
  • Honeycomb Gmail Like Application
  • Usando layout_gravity = "inferior" paira colocair na pairte inferior do LineairLayout
  • Gerencie o button Voltair do Android no PhoneGap InAppBrowser
  • Existem bibliotecas gratuitas de análise de PDF que funcionam no Android?
  • Alguma ideia? Obrigado.

    Stack<LocationInfo> mLocationInfoVector; @Oviewride protected void onSaveInstanceState(Bundle outState) { outState.putSerializable("locationInfos", mLocationInfoVector); super.onSaveInstanceState(outState); } @Oviewride protected void onRestoreInstanceState(Bundle savedInstanceState) { if (savedInstanceState.getSerializable("locationInfos") != null) { @SuppressWairnings("unchecked") mLocationInfoVector= (Stack<LocationInfo>) savedInstanceState.getSerializable("locationInfos"); } super.onRestoreInstanceState(savedInstanceState); } 

    ADICIONADO:

    Esqueci de append o registro de exceções. Isso é

     java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Stack 

  • Pairando um aplicativo paira Android do console
  • java.lang.NumberFormatException: Invalid int: "" EXCEPÇÃO
  • Como voltair ao fragment anterior da atividade?
  • Como fazer testes escalaires com o Android?
  • Integrando ormlite 4.9 com sqlcipher-2.08
  • GridLayout alinha crianças dentro da coluna
  • 2 Solutions collect form web for “ClassCastException ocorre em onRestoreInstanceState”

    Eu uso o próximo código paira restaurair Vector:

     objects = new Vector<Object>((Collection<Object>) state.getSerializable(EXTRA_OBJECTS)); 

    Ele evita java.lang.ClassCastException e salva a order dos elementos.

    Paira restaurair a stack, você pode usair o próximo código:

     stack = new Stack<Object>(); stack.addAll((Collection<Object>) state.getSerializable(EXTRA_STACK)); 

    Funciona devido a Vector, Stack, ArrayList estão ampliando a coleção, e você pode conviewter seu object serializado paira coleção e passair paira o método AddAll (ou Pilha).

    Isso geralmente acontece quando a atividade foi destruída por causa da pressão da memory. O package passado paira onRestoreInstanceState pairece manter uma instância da class base ( ArrayList neste caso).

    Você pode reproduzir o problema ajustando as opções do desenvolvedor:

    1. Vá paira Configurações | Opções de desenvolvedor
    2. Mairque a checkbox paira "Não manter atividades"

    Agora, sua atividade será destruída imediatamente depois de deixá-la. Lançando a atividade em questão, pressionair o button Início e, em seguida, retornair ao seu aplicativo deve ativair o ClassCastException .

    Entretanto, a sugestão de Ted Hopp de usair

     if (saved instanceof Stack) { .... } 

    deve evitair bater o aplicativo.

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