estoy tratando de pasar datos de una actividad a otra a través de Intent.putExtras
así:Intent.putExtras límite de tamaño?
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);
Aquí mUsers
es una lista de HashMap<String,String>
con los datos de los usuarios, incluyendo foto con codificación Base64, la suma de los tamaños de cuerdas en este la lista es de aproximadamente 500 Kb
Llamar al startActivityForResult
se bloquea durante varios minutos con la pantalla en negro y luego aparece el error ANR. El onCreate
de la Sub-Actividad no se llama en absoluto.
Si no agrego grandes cadenas en mUsers (sin fotos codificadas en Base64) - funciona bien.
Por favor ayuda.
Pruebe usar un Parcelable. http://stackoverflow.com/questions/2139134/how-to-send-an-object-from-one-android-activity-to-another-using-intents – DunClickMeBro
¿Ha intentado enhebrar el intento con 'java.lang. Runnable'? –
Tal vez sea mejor si coloca esta 'ArrayList' en un Singleton, podrá acceder a ella desde cada' Activity' en su aplicación. –