启动远程服务并在Android中收到结果

时间:2012-04-13 13:59:42

标签: android service android-intent intentfilter

我有两个申请。 一个app有Activity,另一个是后台服务。

我可以使用隐式意图过滤器从我的活动应用访问服务应用。

我需要从服务中收到结果。

例如:

从活动应用程序,我将启动服务并发送数据。 在服务应用程序中,我需要接收数据并进行一些检查,并需要返回活动应用程序作为修改结果。

我可以通过 putExtra 发送,并且能够通过 getExtra 在服务中检索它。我需要从服务返回一个值并在活动应用程序中接收它。

PS:我需要的是,与我们使用活动结果完成() onActivityResult()的方式相同。

先感谢大师......

2 个答案:

答案 0 :(得分: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();

您将能够在所有app,btw活动和服务中共享数据,我在Tasker中这样做,并且工作正常。

答案 1 :(得分:1)

为什么你希望在有完美工作的活页夹协议时通过意图进行交流。

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

如果某个活动使用'bindService()'启动服务,那么该服务将一直运行,直到该活动调用'unbindService()'。