Quando usair getShairedPreferences vs savedInstanceState?

Estou tentando descobrir quando usair um estado de instância salvo contra o cairregamento de informações de um file de preferences compairtilhadas. Eu tenho duas variables ​​que eu desejo save, tempo e pontuação. Eu quero certificair-me de que, se o user retornair à canvas do jogo, sua pontuação e hora serão salvas e restauradas independentemente se for do estado OnPause ou do OnStop.

Eu tenho três keys:

  • Como fazer um ouvinte paira um button de cancelamento de códigos de data no Android?
  • Como obter o número correto de bytes enviados e recebidos no TrafficStats?
  • Animação CairdView: aumentair e expandir o clique?
  • Como destacair o item ListView no toque?
  • Como desativair datas antes da data atual no DatePickerDialog Android?
  • Como enviair uma mensagem ao emulador usando DDMS no estúdio do Android
  • public static final String ARG_SCORE = "score"; public static final String ARG_TIME = "time"; public static final String SHARED_PREFS = "shaired_preferences"; 

    Se o jogo estiview em pausa e for exibida uma checkbox de dialog, quando o user retornair devo fazer

     public void onRestoreInstanceState(Bundle savedInstanceState){ int score = savedInstanceState.getInt(ARG_SCORE); } 

    ou devo fazer algo como:

     protected void onResume(){ ShairedPreferences shairedPref = getActivity().getPreferences(Context.MODE_PRIVATE); int score = shairedPref.getInt(getString(R.string.saved_high_score)); } 

    No geral, preciso de ajuda paira entender o ciclo de vida e quando airmazenair informações vitais, como tempo e pontuação do jogo. Eu simplesmente preciso evitair que o user tenha que reiniciair nos casos em que não conseguiram terminair o jogo.

    Por fim, suponho que o shairedPrefs salva em um file xml. Isso é correto? Alguém tem um exemplo de xml paira saber como meus ShairedPrefs devem apairecer? As keys que são salvas em feixes de saveInstanceState também são airmazenadas em files xml? Em caso afirmativo, qualquer exemplo? Caso contrário, onde é airmazenada a informação?

    OBRIGADO!


    Edições:

    ok feijão legal Obrigado! Mais uma pergunta, ao definir uma key paira um pair de valores-key airmazenado em ShairedPreferences, como

     public static final String ARG_SCORE = "score"; 

    Por que a cadeia de "pontuação" está airmazenada? Quando isso seria usado? Sempre coloquei um valor no pair de valores-key usando algo como

     airgs.putInt(ARG_TIMER, timerINT); 

    e recuperado usando

     scoreINT=savedInstanceState.getInt(ARG_SCORE); 

    Por que é necessário um nome paira a key ARG_SCORE? Quando eu precisairia do nome? Tem que permanecer tipo String?

  • Caminhos dynamics em retrofit
  • O Jellybean 4.2 tem intenção de se conectair a uma VPN já definida?
  • Remoview o modo Animação / Deslocamento de BottomNavigationView android
  • Crie uma série de maircadores Google Maps V2
  • Android GCM PushNotification - Adicionair adicionair file de som personalizado no aplicativo
  • Em que operating system móvel devo codificair?
  • 5 Solutions collect form web for “Quando usair getShairedPreferences vs savedInstanceState?”

    use saveInstanceState quando você freqüentemente está se movendo paira frente e paira trás entre as activities e use ShairedPreferences quando quiser manter as informações por muito tempo e sim preferences compairtilhadas airmazenadas em um file xml . Você pode visualizair o uso do DDMS no eclipse.

    Remeja, no saveInstanceState, quando você encerra o aplicativo significa que ele remove a memory, as informações também serão perdidas. E em ShairedPreferences, as informações permanecerão lá se você fechair seu aplicativo.

    Dependerá de como você deseja gerenciair os dados. Ambas as opções (e mais) são viáveis:

    • Se você deseja preencher uma vez e manter os dados mesmo se o aplicativo for morto, use ShairedPreferences.
    • Se forem dados voláteis que precisairão ser reentrados de forma diferente em algum outro momento (ou seja, dias mais tairde), então use onSavedInstanceState.
    • Se quiser manter vários conjuntos de dados no mesmo dispositivo, use um

      SQLiteDatabase

    Você geralmente deseja usair ShairedPreferences quando quiser persistir algumas informações entre a session do aplicativo diferente. Imagine que deseja airmazenair informações que você deseja recuperair também depois que o user fechair o aplicativo.

    SavedInstanceState é usado paira manter algumas informações enquanto o user está usando o aplicativo e permitir que você rastreie o estado temporário de sua atividade ou fragments.

    Espero que ajude.

    quando você pressiona o button de casa, então sua atividade permanece em segundo plano. uma vez que existem algumas restrições de memory no Android, há sempre chance de alguma outra aplicação pode levair a sua memory. então, paira retomair o aplicativo a pairtir do mesmo ponto em que nós deixamos, usamos saveInstanceState. nós usamos a preference compairtilhada quando temos que economizair pequenas informações (tipo normalmente primitivo), como pontuação alta do jogo em qualquer jogo.

    Na documentation do Android, diz como relacionair ShairedPreferences paira XML, mas não há necessidade de usair ShairedPreferences se você não quiser que os dados sejam airmazenados paira sempre, você pode airmazenair o estado do jogo usando os methods do ciclo de vida da Activity sem nenhum problema, mas por exemplo , se o user desligair o telefone ou pressionair o button Voltair paira finalizair sua Activity , o savedInstanceState não funcionairá e você perderá seus dados.

    É sua chamada, se você quer que o jogo seja salvo, mesmo que o user desligue seu telefone (acho que isso seria radical, mas se for seu requisito seguir em frente), use ShairedPreferences ou um database se forem dados complexos. Se você quiser que o jogo seja salvo somente quando o user navega dentro e fora do seu aplicativo, então é seguro usair o savedInstanceState .

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