2011-02-05 8 views
3

私のアプリケーションには、バックグラウンドポーリングの楽しみのUIとサービスのアクティビティがあります。標準運賃のようです。バックグラウンドサービスを使用してアクティビティを開発するためのベストプラクティス

  1. AlarmManagerはアクティビティなしでサービスインテントをトリガーできますか?

  2. アクティビティ&サービスを別のアプリケーションに入れることに利点はありますか?これは2つのapkを作成し、1つのアプリとしてMarketに入れることを不可能にするでしょうか?どういうわけか、2つのアプリケーションを1つのマニフェストに入れることはできますか? - 私はちょうど2のためのアプリケーションスコープで(ユーザオブジェクトのような)共通のオブジェクトを格納することができない

-If活性&サービスが同じアプリケーションの一部である2つの間の通信について

  • 共有するには?

    - 私はAIDLを気にする必要はないと思われます - アプリケーションスコープで互いに弱い参照を持つこともできますし、そのようにして互いのメソッドを呼び出すことができますか?または、Observer PatternやBroadcastListenerのようなもので、お互いにpub/subする必要がありますか?

  • 答えて

    3

    AlarmManagerはアクティビティなしでサービスインテントをトリガーできますか?

    はい。

    アクティビティ&サービスを別のアプリケーションに入れることにはどんな利点がありますか?

    IMHO、いいえ。

    これは2つのapkを作成し、1つのアプリとしてMarketに入れることができませんか?

    はい。

    何とか1つのマニフェストに2つのアプリケーションを配置できますか?

    純粋なXMLの観点からは、マニフェストに複数の<application>要素のための空きがあります。ただし、AFAIKは1つだけサポートされています。

    アクティビティが同じアプリケーションの一部である場合 - アプリケーションオブジェクトのような共通オブジェクトを2のアプリケーションスコープに保存できないのですか?

    非常に速いものとして、はい。ただし、あなたのサービスが終了することがあります(Android、ユーザーなど)。その後、プロセスが終了する可能性があり、Applicationオブジェクトはpoofになります。私は軽いキャッシングのためだけにこれを使用したいと思います。

    私もAIDL

    正しいを気にする必要はありませんように思える - のみ結合プロセス間のサービスのために必要とされています。

    2はちょうど私が百万年の間にそれをしないだろう弱いApplicationスコープでお互いへの参照だけでなく

    を持つことができます。責任を持ってプラットフォームを使用してください。アクティビティとサービスが疎結合したままである(またはローカルバインディングパターンの場合は、Android対応の方法で緊密に結合されている)多くの方法があります。

    オブザーバーパターンまたはブロードキャストリスナーの何らかの種類のもので、お互いをパブ/サブする必要がありますか?

    これらの線に沿って何かが望ましいでしょう。アクティビティとサービスは同じプロセスで同時に共存することができますが、互いに直接リンクするようには設計されていません。

    +0

    もう一度CommonsWare - 私は本当に適切なデザインに向かって進歩しています。途中でさらにフォローアップ。 – paulpooch

    +0

    質問はこちらを参照してください:http://stackoverflow.com/questions/4908267/communicate-with-activity-from-service-localservice-android-best-practices – paulpooch

    関連する問題