0

2つのアプリケーションがあります。1つのアプリにはアクティビティがあり、もう1つのアプリはバックグラウンドサービスです。

暗黙のインテントフィルターを使用して、アクティビティアプリからサービスアプリにアクセスできます。

サービスから結果を受け取る必要があります。

例:

アクティビティアプリから、サービスを開始してデータを送信します。サービスアプリでは、データを受信して​​いくつかの検査を行い、変更された結果としてアクティビティアプリに戻る必要があります。

putExtraで送信でき、getExtraでサービスで取得できます。サービスから値を返し、アクティビティアプリで受け取る必要があります。

PS:私が必要としたのは、アクティビティの結果でfinish()onActivityResult()を使用するのと同じ方法です。

マスターに感謝します...

4

2 に答える 2

2

まず、次のようなクラスを追加します。

package com.test.context; //For example
public class MyContext extends Application
{
   //Here you define the attributes to share through the application
   // with setters and getters
}

AndroidManifest.xmlに、クラスのパスを追加します。例ではcom.test.contextなので、次のようになります。

<application android:name="com.test.context.MyContext"
                 android:icon="@drawable/ic_launcher"
                 android:label="@string/app_name">

次に、コードで次のようなことを行うことができます。

MyContext ctx = (MyContext)getApplication();

そして、あなたはすべてのアプリ、ところで活動とサービスでデータを共有することができるでしょう、私はタスカーでこのようにそれをしました、そしてうまく働きます。

于 2012-04-13T14:06:55.913 に答える
1

完全に機能するバインダープロトコルがあるのに、なぜインテントを介して通信したいのですか。

http://developer.android.com/guide/topics/fundamentals/bound-services.html

アクティビティが「bindService()」でサービスを開始した場合、サービスはアクティビティが「unbindService()」を呼び出すまで実行されます。

于 2012-04-13T14:30:52.870 に答える