1

基本的に、AlertDialog を使用して、バックエンド サーバーへの同期中に競合が発生した場合に必要なファイルをユーザーに尋ねるアクティビティをサービスから作成しています。アクティビティはサービス内で作成されているため、startActivityForResult(...); は使用できません。私はそれが眉をひそめていることを知っており、通知を使用する方が良いでしょう. このアプリを実行するデバイスはこのソフトウェア専用に使用され、すべてのアプリはこのサービスを使用して中央データベースと同期するため、このようにしています。

startActivityForResult(...) 以外に、アクティビティからそれを呼び出すサービスにデータを送り返す方法はありますか?

4

1 に答える 1

0

いくつかの方法があります。1 つは AIDL を使用して、サービスとアクティビティが関数呼び出しを介して通信できるようにすることです (Android は必要に応じてそれらを RPC に変換します)。これには多くの作業が必要ですが、便利なテクニックです。もう 1 つの方法は、カスタム インテントを使用して、サービスにそのインテントのブロードキャスト レシーバーを作成させ、メッセージを介してハンドラーに通知させることです。

于 2013-02-03T03:07:21.533 に答える