Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有底层套接字连接的Android应用程序-是否为远程服务?_Android_Sockets_Binding_Service_Aidl - Fatal编程技术网

具有底层套接字连接的Android应用程序-是否为远程服务?

具有底层套接字连接的Android应用程序-是否为远程服务?,android,sockets,binding,service,aidl,Android,Sockets,Binding,Service,Aidl,我正在开发一个Android应用程序,它可以将套接字连接打开到消息服务器。我有一组可运行程序,它们生成自己的线程并处理连接/维护连接。这些是从前台服务调用的。前台服务处理所有的消息处理/业务逻辑。这将不会太复杂,它将涉及操作XML,遍历SQLite数据库。这些活动将是精简和愚蠢的——将所有内容传递给前台服务 我正在看mindtherobot.com上的一个教程,该教程详细介绍了如何构建一个基本的twitter客户端,该客户端有一个后台服务,定期轮询twitter API并将数据传递给活动。(我不

我正在开发一个Android应用程序,它可以将套接字连接打开到消息服务器。我有一组可运行程序,它们生成自己的线程并处理连接/维护连接。这些是从前台服务调用的。前台服务处理所有的消息处理/业务逻辑。这将不会太复杂,它将涉及操作XML,遍历SQLite数据库。这些活动将是精简和愚蠢的——将所有内容传递给前台服务

我正在看mindtherobot.com上的一个教程,该教程详细介绍了如何构建一个基本的twitter客户端,该客户端有一个后台服务,定期轮询twitter API并将数据传递给活动。(我不想发布它的实际链接,因为它在谷歌atm上显示为恶意软件泛滥/有害)。为此,它使用远程服务

使用远程服务意味着它使用AIDL来处理IPC,而不仅仅是使用绑定

我不确定的是是否有必要这样做。我的服务不会被任何第三方应用程序使用——从我所读到的内容来看,除非严格需要远程服务,否则我不赞成使用远程服务(因为它会增加一倍的开销)


将来,我可能希望添加小部件以显示来自前台服务的通知-这会改变wrt remote services吗?

这方面的标准模式是使用:

  • 处理程序触发周期性意图
  • 广播接收者收听所述意图。当它醒来时,轮询服务器并存储任何新数据
  • ContentProvider向活动提供数据
确保不要频繁地触发周期意图,否则会耗尽电池电量


然后,您也可以创建一个服务器,将数据推送到C2DM上。

它通过套接字连接到第三方服务器。我不能改变这一点。插座连接至关重要;我们需要能够检查客户端是否在线,并且消息传递需要尽可能接近实时-轮询不是选项,C2DM在这个阶段也不是。如果您(可能)正在使用XMPP,可以为您这样做;否则,请使用自己的线程保留服务所在的套接字,并与比AIDL更容易的套接字通信。注意,保持套接字打开会消耗电池。套接字连接已经在它自己的线程中,并通过处理程序与前台服务通信。我正在讨论将前台服务与活动绑定,并想知道前台服务是否应该是远程的。只使用means AIDL,这与您的服务是否意味着“不要为了内存而杀人”无关。我不担心它被杀死,我理解前台的作用。我只是感到困惑,为什么我正在阅读的教程显示使用远程服务与twitterapi通信,而不仅仅是服务。我的服务将比twitter服务做更昂贵的工作,所以我想知道这是否会影响我活动的响应性。。但是,如果它都是在离散线程中完成的,那么就应该可以了。