Android 安卓服务说明
我是一名新的android开发者,目前正在制作一个应用程序与之通信。我想设置一个后台任务来完成所有与SIP相关的任务,如果可能的话,让它在手机启动时开始。我目前的想法是创建一个Android 安卓服务说明,android,service,Android,Service,我是一名新的android开发者,目前正在制作一个应用程序与之通信。我想设置一个后台任务来完成所有与SIP相关的任务,如果可能的话,让它在手机启动时开始。我目前的想法是创建一个服务,并让它在设备启动时启动,问题是有两种服务,一种是使用,另一种是以意图启动 我想将一些参数传递给我的服务,让它独立于我的主活动运行,并能够通知我的主活动。有谁能告诉我如何做到这一点,并告诉我一些好的教程,让我了解这两种服务之间的区别吗?我读过一本关于Android开发人员的书和一些教程,但它们让我更加困惑 问题是有两种
服务
,并让它在设备启动时启动,问题是有两种服务
,一种是使用,另一种是以意图
启动
我想将一些参数传递给我的服务,让它独立于我的主活动
运行,并能够通知我的主活动
。有谁能告诉我如何做到这一点,并告诉我一些好的教程,让我了解这两种服务之间的区别吗?我读过一本关于Android开发人员的书和一些教程,但它们让我更加困惑
问题是有两种
一个使用AIDL的服务和一个
这是从一个意图开始的
这是不正确的。您可以对本地服务和远程服务使用意图
。您只能将AIDL用于远程服务
我想把一些论点传给你
我的服务,让它独立运行
我的主要活动,并能够
通知我的主要活动的传入
信息
要将“参数”传递给服务,可以通过传递给startService()
或bindService()
的Intent
上的putExtra()
将这些参数打包为“额外参数”
要“将传入消息通知我的主要活动”,您可以在活动中使用广播意图和广播接收器,也可以通过bindService()
将活动绑定到服务,并使用侦听器对象。使用服务。您可以使用AIDL中定义的过程与it进行通信。如果它必须通知您的应用程序某事,它可以向您的应用程序发送意图
如果您希望它在启动时具有某些参数,我将使用首选项管理器存储它们
我为我的RandyVideos应用程序写了这样的东西(可从MiKandi免费获得)
我有一个后台服务,负责网络方面的工作。主活动通过AIDL中描述的方法与it进行通信。如果服务想要与活动对话,它会发送一个意图。非常感谢,还有一个令人困惑的问题,因为似乎每个人都给出了不同的答案,服务独立于活动运行,即使是本地或远程服务?换句话说,服务始终独立于活动,并作为回退线程运行以执行耗时的任务?如果我错了,请纠正我,但远程(AIDL)服务代码不是同步执行的吗?“服务独立于活动运行,即使它是本地或远程服务?”是的,这只是一个是否在同一进程中的问题。“并作为执行耗时任务的反向线程运行?”只有在设置后台线程时才可以,否则它会像所有活动和其他Android组件一样在主应用程序线程上运行。“如果我错了,请纠正我,但是远程(AIDL)服务代码不是同步执行的吗?”是的。嗨,Commonware,我想知道你的“如果你设置了一个后台线程”部分。。。如果你使用AIDL,你会得到一个存根,所以我想知道如何将这个存根(提供功能)放在一个线程中?@TiGer-你可以让存根启动一个AsyncTask
来做后台工作,或者将API参数转换成一个对象,然后将它放到工作队列中。以下是后者的一个例子: