我已經編寫了一個具有<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