android服务说明

时间:2009-12-21 15:51:16

标签: android service

我是一名新的Android开发人员,我目前正在创建一个与SIP进行通信的应用程序。我想设置一个后台任务来完成所有与SIP相关的任务,如果可能的话,让它在手机启动时开始。我目前的想法是创建一个Service并让它从设备启动开始,问题是有两种Services使用AIDL,另一种使用{{} {1}}。

我想将一些参数传递给我的服务,让它独立于我的主Intent运行,并能够通知我的主Activity收到的消息。任何人都可以告诉我如何做到这一点,并指出我可以理解两个Activity之间的差异的任何好的教程?我读过一本关于Android开发者的书和一些教程,但他们更加困惑我。

2 个答案:

答案 0 :(得分:6)

  问题是有两种   一个使用AIDL和一个的服务   这是以意图开始的

这是不正确的。您将Intents与本地服务和远程服务一起使用。您只能将AIDL用于远程服务。

  

我想传递一些论据   我的服务让它独立运行   我的主要活动,并能够   通知我的主要活动   消息。

要将“参数”传递给服务,您可以通过putExtra()Intent传递给startService()bindService(),将其作为“附加内容”打包。

要“通知我的主要活动收到的消息”,您可以在活动中使用广播IntentsBroadcastReceiver,或者您可以通过bindService()将活动绑定到服务使用监听器对象。

答案 1 :(得分:2)

使用服务。您可以使用AIDL中定义的过程与其进行通信。如果必须通知您申请某些内容,它可以向您的申请发送意图。

如果您希望它在启动时具有某些参数,我会使用首选项管理器存储它们。

我为我的RandyVideos应用程序写了这样的东西(可以从MiKandi免费获得)。

我在后台做了网络服务。主Activity通过AIDL中描述的方法与之通信。如果服务想与活动交谈,则会发送意图。