sto cercando di passare i dati da un'attività all'altra tramite Intent.putExtras
come questo:Limite dimensioni Intent.putExtras?
private ArrayList<HashMap<String, String>> mGroups = new ArrayList<HashMap<String, String>>();
private ArrayList<HashMap<String, String>> mUsers = new ArrayList<HashMap<String, String>>();
...
Bundle data = new Bundle();
data.putInt("mode", mode);
data.putSerializable("groups", (Serializable) mGroups);
data.putSerializable("users", (Serializable) mUsers);
data.putInt("current_class", mCurrentClassId);
data.putInt("current_user", mCurrentUserId);
Intent intent = new Intent(ctx, ChildActivity.class);
intent.putExtras(data);
ctx.startActivityForResult(intent, 0);
Ecco mUsers
è un elenco di HashMap<String,String>
con i dati degli utenti, tra cui codifica Base64 foto, somma delle stringhe dimensioni in questo lista è di circa 500Kb
Chiama a startActivityForResult
si blocca per diversi minuti con lo schermo nero e quindi ottengo errore ANR. Il sotto-attività onCreate
non viene chiamato affatto.
Se non aggiungo stringhe grandi a mUser (nessuna foto con codifica Base64) - funziona perfettamente.
prega di aiuto.
Provare ad usare Parcelable. http://stackoverflow.com/questions/2139134/how-to-send-an-object-from-one-android-activity-to-another-using-intents – DunClickMeBro
Hai provato a eseguire il threading dell'intento con 'java.lang. Runnable'? –
Forse ti sarebbe servito meglio mettendo questo 'ArrayList' in un Singleton, sarai in grado di accedervi da ogni' Activity' nella tua applicazione. –