Tig*_*ger 5 java android android-intent android-3.0-honeycomb
我试图通过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);
Run Code Online (Sandbox Code Playgroud)
这mUsers是一个HashMap<String,String>包含用户数据的列表,包括Base64编码的照片,此列表中的字符串大小总和约为500Kb
startActivityForResult用黑屏调用挂起几分钟然后我得到ANR错误.onCreate根本没有调用子活动.
如果我不在mUsers中添加大字符串(没有Base64编码的照片) - 工作得很好.
请帮忙.
如果两个活动都属于您,请使用体面的数据模型.对于设计精良的应用程序,Android并不鼓励这么多.或者换一种方式,它允许快速开发的应用程序,并没有促进很多良好的软件应用原则.
@ Jean-Philippe Roy(魁北克?)的解决方案很有意思,但是当涉及到更精细的东西时,单身人士是一种反模式,即有状态的模型或服务.
最好的选择是使用应用程序类.这个类是你的单身,在android中本质上.所以,
---更新@straya的回答和18个月的Android编程:)
在构建Android应用程序时,始终会考虑在应用程序,活动,视图和片段之间共享数据结构或流程的问题.重要的是要知道并考虑应用程序范围是保存共享结构的正确位置,但是使用应用程序类本身将数据结构放在该范围内对于以下方面是不可行的:
我现在倾向于使用依赖注入管理的单例.Dagger或RoboGuice都允许创建给同一个类的单个实例并将其注入其他类.这种技术和DI通常为良好的Android设计提供了很好的可能性:
| 归档时间: |
|
| 查看次数: |
8885 次 |
| 最近记录: |