2010-12-30 9 views
0

私のアプリにはネットサービスがあります。アプリケーションのコンテキストやサービスのスレッドであれば、問題はありません。何が問題なのですか?
サービスが動作していますが、今私はアンドロイドの雌犬であるオブザーバーのデザインパターンで作業しています:-(私は破壊時にリスナーを取り除き、ネットワークがすべて準備が整っていればそれを確認する必要があります
私は自分のアプローチを変更したいが、正しいアンドロイドの方法がわからない。自分のアーキテクチャやエラーが起こりやすいポーリングのための活動が行われているようだ。アンドロイドアプリのネットサービス

私はfolowing二つの方法を考えたが、非は私の真の解決策を与えるように見える: ことbraodcastレシーバーを作成

  1. を 応答またはエラーが ネットから到着した場合は、フラグを含むブロードケースを送信します。これは、適切なデータをポーリングして処理する アクティビティに適しています。私はbroacastに登録 場合、私は基本的に 一時停止にリスナーをで削除する必要があるため、私はこのことについて 不思議を行うので、私は放送を欠場することができ、 はそれはのように同じのonCreateでネット 状態を確認するために戻って何 を私は今やっています - 吸います...
  2. startActivityを使ってイベントを送信し、それをインテントに送信しましたが、ここでアクティビティが一時停止または停止している場合は、この種の行動が欲しいのですが、私はその活動が何を問わずイベントを取得し、それを行う方法があるのだろうかと疑問に思っています。

ランドスケープ\ポートレートのイベントは、私を殺しています。

答えて

0

私は、次を発見した:

  1. 私は 風景\ポートレートイベントを自分自身を処理することを決定し、 ことができ、私は
  2. 問題の90%を排除する私は、ブロードキャストレシーバを使用することができますが、スティッキーフラグ付きでそれは私を待つ意図を引き起こす、私はちょうど私がそれをもう一度gtの意志を持っている場合最初にチェックしなければならない粘着性がある場合(風景/肖像画では、画面回転でそれを2回得るかもしれないという意味)

私は私のアプリケーションを殺さない新しい意図がある場合(意図に依存する)、私はonNewIntent()メソッドでそれを取得します。私はonCreateとonNewIntnetの間でそれらを共有するためにそれらをすべて集める別々のinit関数で、それらの値に依存するいくつかのinit関数を置くことができます。

関連する問題