我写了一个应用程序,其中有一个<intent-filter/>
以便其他应用程序可以使用它来启动它startActivityForResult()
。当此活动完成时,它创建了一个如下所示的对象:
(申请A)
public class MyObject implements Serializable {
private String name;
private String[] items
}
并将其设置为结果:
(申请A)
getIntent().putExtra("Extra_MyObject", myObject);
setResult(RESULT_OK, getIntent());
因此,接收此意图的第二个活动有一个问题,它如何知道要接收的额外意图的名称 and 我将如何创建收到的对象并将其投射回MyObject
这不是这个应用程序的一部分?
(申请B)
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == MY_REQ_CODE){
if(resultCode == RESULT_OK){
// So here how do I know what the intent data name is i.e. "Extra_MyObject"
// and how would I know the structure to cast the object back to a MyObject that isn't part of this project?
}
}
}
我会模仿吗MyObject
第二个应用程序中的类并将其转换为该类?
或者还有其他选择吗?
你可以使用像这样的库Jackson将对象序列化为 JSON 字符串,然后在另一端反序列化。
它更加灵活,并且如果您决定添加额外的字段,则可以消除传递的数据版本不一致的问题。
此外,这两个应用程序不再需要在同一命名空间中维护一个类,甚至不再需要使用相同的名称来调用它们。
最后一点,您不再需要发布 jar,只需您的文档就足够了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)