0

HttpResponse (Apache CORE API から) オブジェクトを別の Intent への追加として渡したいという特別な要件があります。

問題: HTTP サーバー (Apache CORE) でサービス S を実行しています。POST 要求を受信して​​いる間、インテント A の実行後に応答を送信する必要があります。インテント A は、既に実行されているサービス S にブロードキャストを送信します (これは、サービス S に基づいて設計されています)。私の要件で)。そのため、ブロードキャスト レシーバーで HTTP POST 応答を処理する必要があります。これは可能ですか?したがって、handle() メソッドで HttpResponse をブロードキャスト レシーバーに送信し、そこから応答を送信する必要があります。詳細が必要な場合はお知らせください。

String、Integer 型などのプリミティブ型を渡すためのリンクを見つけました。

4

3 に答える 3

2

Serializable以下のようなインターフェースを使用できます。

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

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

またはさらに良いことに、以下のように使用Parcelableします(@BomberManの回答このブログから入手):

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());
    }
  ............
} 
于 2013-01-20T19:52:36.667 に答える
1

オブジェクトをエクストラとして渡すため。ParclableまたはSerializableを実装する必要があるかもしれません。ただし、HttpResponseのデフォルトの実装は両方を実装していません。したがって、必要なのはBasicHttpResponseを拡張し、そのうちの1つを実装することです。

于 2013-01-20T19:47:54.887 に答える
0

私は使用しました

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

ここで、responseはHttpResponseオブジェクトであり、httpResponseはこのリクエストのIDとして機能する文字列です。アクティビティとサービスの間で文字列を渡しました。後で、その値(文字列値)を使用してオブジェクト(キー)の値を取得しました。HttpResponseはSerializableを実装していないため、これは機能しました:)返信ありがとうございます。

于 2013-01-21T14:23:28.393 に答える