내가 같이 Intent.putExtras
를 통해 하나의 액티비티에서 다른 액티비티로 데이터를 전달하기 위해 노력하고있어 : 여기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);
mUsers
은이에 Base64로 인코딩 된 사진, 문자열의 크기의 합을 포함하여 사용자의 데이터와 HashMap<String,String>
의 목록입니다 목록이 약 500Kb입니다.
startActivityForResult
으로 전화를 걸어 몇 분 동안 검은 색 화면이 나타나면 ANR 오류가 발생합니다. 하위 활동의 onCreate
은 전혀 호출되지 않습니다.
큰 문자열을 mUsers에 추가하지 않으면 (Base64로 인코딩 된 사진 없음) 정상적으로 작동합니다.
도와주세요.
Parcelable을 사용해보십시오. http://stackoverflow.com/questions/2139134/how-to-send-an-object-from-one-android-activity-to-another-using-intents – DunClickMeBro
당신은 java.lang으로 인 텐트를 스레딩 해 보았습니까? Runnable'? –
아마도이 'ArrayList'를 Singleton에 넣는 것이 더 좋을 것입니다. 응용 프로그램의 모든'Activity'에서 액세스 할 수 있습니다. –