在Android中将HttpResponse对象作为额外的意图传递

时间:2013-01-20 19:44:11

标签: android android-intent

我有一个特殊要求,我想将HttpResponse(来自Apache CORE API)对象作为额外的Intent传递给另一个Intent。

问题: 我有我的HTTP服务器(Apache CORE)运行服务S.当我收到POST请求时,响应应该在执行意图A后发送,意图A将广播发送到已经运行的服务S(这是基于我设计的)需求)。所以我需要在广播接收器中处理HTTP POST响应。这可能吗?所以,我需要在handle()方法中的HttpResponse在Broadcast接收器中发送并从那里发送响应。如果您需要更多详细信息,请与我们联系。

我找到了传递原始类型的链接,如String,整数类型等。任何帮助都表示赞赏。

3 个答案:

答案 0 :(得分:2)

您可以使用Serializable界面,如下所示:

// pass:
intent.putExtra("MotherClass", obj);

// receive:
getIntent().getSerializableExtra("MotherClass");

甚至更好,请使用Parcelable,如下所示(来自@BomberMan's answerthis blog):

public class CustomObject1 implements Parcelable {

   // parcelable code CustomObject1
}
public class CustomObject2 implements Parcelable {

    private CustomObject1 obj1;

   // add  CustomObject1 here with getter setter
   // parcelable code for CustomObject2 

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeParcelable(obj1, flags);
    }  
    private void readFromParcel(Parcel in) {
        obj1 = in.readParcelable(CustomObject1.class.getClassLoader());
    }
  ............
} 

答案 1 :(得分:1)

为了传递对象作为额外的。您可能需要实现Parclable或Serializable。但是HttpResponse的默认实现并没有实现这两者。所以你需要的是扩展BasicHttpResponse并实现其中一个。

答案 2 :(得分:0)

我用过

HashMap<Object,Object> requestValue.put(response,"httpResponse"),

,其中 response是HttpResponse对象,httpResponse是用作此请求的ID的字符串。我在Activity和服务之间传递了String。稍后,使用其值(String值)检索对象(键)的值。 HttpResponse没有实现Serializable,因此这工作:)谢谢大家的回复。