Utilizzo dei dati recuperati in un'attività in un'altra attività

Ottengo alcuni dati come dire userName in Activity_1 da un server web. Quindi desidero utilizzare gli stessi dati in Activity_2

così ho fatto questo userName Public Static ed usato in questo modo in Activity_2

  • Implementa l'espansione e il crollo della notifica android
  • Colore predefinito SwitchPreference
  • Il funzionamento a lunga durata consuma molta batteria
  • Come modificare / reimpostare Alarm Manager?
  • Genymotion 2.5 non funziona con i PlayServices API16 / 17
  • Imansible trovare il file vcf su SDCard Android Emulator
  •  Activity_1.userName 

    Ma poi quando sono in Activity_2 e press Home Button e riaprire l'applicazione 5 minuti più tardi, questo Activity_1.userName diventa Null dato che i Activity_1 data is destroyed . e ottengo NullPointerException

    Come risolvere questo problema in modo semplice.

    Ho appena dato un esempio di userName ma in realtà sono alcuni altri dati che cambiano each giorno, come dire "notizie del giorno"

    Molti suggeriscono di rimuovere public static public e di submit tale nome utente come:

     Intent.putExtra("user_name", userName); 

    Ma non è così come quello che sto facendo. Voglio dire anche in questo modo NullPointerException diritto NullPointerException ??

  • Come posso inserire caratteri utf-16 nella risorsa string Android?
  • Come analizzare la string json in Android?
  • Proguard converte tutti i enums in int o deve essere configurato per questo
  • Come configurare PROGUARD per il processre Jackson JSON?
  • Imansible trovare com.google.android.gms: play-services: 3.1.59 3.2.25 4.0.30 4.1.32 4.2.40 4.2.42 4.3.23 4.4.52 5.0.77 5.0.89 5.2.08 6.1. 11 6.1.71 6.5.87
  • Aggiungere valore a virgola mobile alle risorse e ai valori android
  • 4 Solutions collect form web for “Utilizzo dei dati recuperati in un'attività in un'altra attività”

    Ci sarebbero due modi per farlo.

    1. Assicurarsi sempre che Activity1 sia l'attività di avvio nell'applicazione. Voglio dire, se l'utente chiude l'applicazione e riavvia di nuovo, l'applicazione dovrà provenire da Activity1 e quindi recuperare i dati. E poi solo andare in Activity2. Si noti inoltre che è ansible eseguire il recupero dei dati dal Web in Activity2 utilizzando l' utilità AsyncTask .

    2. Salvare i dati dall'attività1 in SharedPreferences e in Activity2 utilizzare sempre le SharedPreferences per leggere i valori.

    L'intento viene salvato, quindi la risposta corretta è quella di utilizzare putExtra. Quando la tua attività deve essere reinizializzata, verrà creata di nuovo utilizzando l'intento.

    puoi aggiungere un'azione a questo evento e prendere l'evento solo se l'azione esiste …

    E naturalmente è ansible salvare i dati in modo persistente – database SQLite o SharedPreferences

    Come suggerito da swayam, ti suggerisco di scegliere un pref di DB o Shared, i prefissi particolarmente condivisi si adattano meglio al tuo scenario;

    È ansible utilizzare qualcosa come segue:

    Mettere:

     SharedPreferences sharedPreferences = getSharedPreferences("PREFS_READ", Context.MODE_WORLD_READABLE); Editor prefsPrivateEditor = sharedPreferences.edit(); prefsPrivateEditor.putString("yourkey", userName); prefsPrivateEditor.commit(); 

    Ottenere:

     SharedPreferences sharedPreferences; Context otherAppsContext = null; try { otherAppsContext = getApplication().createPackageContext( "your.package.name", 0); } catch (NameNotFoundException e) { Toast.makeText(Email.this, e.toString(), Toast.LENGTH_LONG).show(); } sharedPreferences = otherAppsContext.getSharedPreferences("PREFS_READ", Context.MODE_WORLD_WRITEABLE); String getusername = sharedPreferences.getString("yourkey","default_value"); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.