我已经编写了一个具有<intent-filter/>
的应用程序,以便其他应用程序可以使用startActivityForResult()
启动它。在结果在Android应用程序中使用startActivityForResult
(应用程序A)
public class MyObject implements Serializable {
private String name;
private String[] items
}
而设置的吧:
(应用程序A)
getIntent().putExtra("Extra_MyObject", myObject);
setResult(RESULT_OK, getIntent());
当此活动结束后它已创建了一个对象,它是像
因此,接受此意向的第二个活动有一个问题,它如何知道要接收的意向的名称和我将如何创建收到的对象并将其重新转换为不属于此应用程序的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
类第二应用程序并将其转换为呢? 还有其他选择吗?
实际上这是个好主意。我可以用'MyObject'中的'getAsJson()'创建自己的JSON对象,并将其作为'Intent'上的'String'发送,然后我只需要维护一个带有JSON结构的API – Blundell 2012-03-04 16:08:57
yes 。无需创建getAsJson方法并自己实现它。看看杰克逊。它会照顾到你的序列化为JSON。 – 2012-03-04 16:10:07
请注意,Android内置了'org.json'类.Jackson很酷,但是您对第三方(即使用此结果的任何人)施加的依赖性越少,您的效果就越好。 – CommonsWare 2012-03-04 16:39:02