2012-02-15 36 views
3

我即将开始制作一个应用程序,它应该作为一个tcp聊天客户端,我一直在阅读和阅读,并得出结论,这将是最好的(如果不是必需的?)把我的插座和读者在asynctask。Android套接字和asynctask

事情我不知道该从哪里开始,因为即时通讯对于Android来说这是一项对我来说至关重要的事情,但对于我来说理解它却是至关重要的。

  1. 实例化主类中的viewvs并创建一个从EditText发送文本到异步类的方法。

  2. 创建异步类,使用套接字和连接,将读取器放置在此处和写入器,写入器将成为接收通过套接字发送的字符串参数的方法。

  3. 不知何故,我的读者不断地收听服务器套接字,并用发送的字符串更新我的textview。

这是一个很好的基本“计划”开始编程或有缺陷,或者我失去了一些东西吗?即使开始之前我得到的一个问题是异步任务,我能做到吗?据我所知,我不需要返回任何东西,我不会需要任何更新进度?我的客户端地址将被硬编码,所以即时猜测这是唯一我想要传递参数到异步类?

对不起,如果它的基本,但即时启动,并希望不会出错。

回答

6

您只想使用AsyncTask进行小的(相对)和直接操作,例如下载特定项目(例如图像或mp3)。这听起来像你想要的是Service。该服务将在您的应用程序的后台运行,您可以通过该服务处理您的网络操作。

对于其他有用的文档和看帮助,如果该服务是适合你,look here.

编辑:

对于在自己的线程创建服务的更多信息,refer to this.

编辑2 :

试图想到的是作为反活动。它完成一项活动不应该做的一切,主要是处理。任何核心处理都应该在一个线程服务中完成,原因很多,主要是为了多任务处理和从主UI线程处理。为了解释这一点,想想潘多拉。潘多拉创建一个服务(在它自己的线程中),连接到它的网站并传输音乐。该服务有一个生命周期,可以让它在活动被杀的同时生活。这允许音乐流传送,用户将执行其他任务。但是当用户想看看正在播放的内容时,她只需点击进入该应用。在那里,活动将检查服务,查看它是否有一些数据,并将其内容基于服务中的数据。

我希望这会有所帮助。我真的想不出更好的为什么要把它...

+0

但据我所知,它的服务不运行在自己的线程,不是这首选或要求的套接字,将不断在听ServerSocket的? – Gvs 2012-02-15 17:11:03

+0

你可以在自己的线程中创建一个服务。只需创建一个实例线程并在其中创建服务。 – AedonEtLIRA 2012-02-15 17:31:29

+0

很抱歉,我没有看到服务上的优势?它是否给了我开始和结束命令,还是我错过了服务的主要优点? – Gvs 2012-02-15 20:31:47