Tôi đang cố gắng để truyền dữ liệu từ một hoạt động khác thông qua Intent.putExtras
như thế này:Giới hạn kích thước 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);
Dưới đây là một mUsers
Danh sách HashMap<String,String>
với dữ liệu của người sử dụng, bao gồm cả ảnh Base64 mã hóa, tổng của chuỗi kích thước trong này danh sách là khoảng 500Kb
Gọi tới startActivityForResult
treo trong vài phút với màn hình màu đen và sau đó tôi nhận được lỗi ANR. Hoạt động của Sub-Activity là onCreate
hoàn toàn không được gọi.
Nếu tôi không thêm chuỗi lớn vào mUsers (không có ảnh được mã hóa Base64) - chỉ hoạt động tốt.
Vui lòng trợ giúp.
Hãy thử sử dụng một kiện. http://stackoverflow.com/questions/2139134/how-to-send-an-object-from-one-android-activity-to-another-using-intents – DunClickMeBro
Bạn đã thử luồng ý định với 'java.lang. Runnable'? –
Có lẽ bạn sẽ được phục vụ tốt hơn bằng cách đặt 'ArrayList' này vào một Singleton, bạn sẽ có thể truy cập nó từ mọi 'Hoạt động' trong ứng dụng của bạn. –