【问题标题】:Android sockets and asynctaskAndroid 套接字和异步任务
【发布时间】:2012-02-15 15:41:55
【问题描述】:

我即将开始制作一个应该充当 tcp 聊天客户端的应用程序,我一直在阅读和阅读,我得出的结论是最好(如果不需要?)我在异步任务中的套接字和阅读器。

问题是我不确定从哪里开始,因为我是 android 新手,这至少对我来说是一项艰巨的任务,但据我所知是基础知识。

  1. 在主类中实例化视图并创建一个用于将文本从 EditText 发送到异步类的方法。

  2. 创建异步类,带有socket和connection,将reader和writer放置在这里,writer将是一个方法来接受一个通过socket发送的字符串参数。

  3. 不知何故让我的读者不断地监听服务器套接字并用发出的字符串更新我的文本视图。

这是一个很好的开始编程的基本“计划”,还是它存在某种缺陷或我遗漏了什么?我在开始之前遇到的一个问题是异步任务,我能做到吗?据我所知,我不需要返回任何东西,也不需要任何进度更新?我的客户地址将被硬编码,所以我猜这是我唯一想将参数传递给异步类的东西?

对不起,如果它是基本的,但我才刚刚开始,不想一开始就错了。

【问题讨论】:

    标签: android sockets android-asynctask


    【解决方案1】:

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

    有关其他有用的文档和有关查看服务是否适合您的帮助,look here.

    编辑:

    有关在自己的线程中创建服务的更多信息,refer to this.

    编辑 2:

    尝试将is视为反Activity。它完成了活动不应该做的所有事情,主要是处理。出于多种原因,任何核心处理都应该在线程服务中完成,主要是为了多任务处理和从主 UI 线程中取出处理。为了证明这一点,想想潘多拉。 Pandora 创建了一个服务(在它自己的线程中),它连接到它的站点并流式传输音乐。该服务有一个生命周期,允许它在活动被终止时继续存在。这允许音乐在用户执行其他任务时进行流式传输。但是当用户想要查看正在播放的内容时,她只需点击进入应用程序即可。从那里,活动将检查服务,查看它是否有一些数据,并将其内容基于服务中的数据。

    我希望这会有所帮助。我实在想不出更好的理由来放它....

    【讨论】:

    • 但据我了解,服务不会在自己的线程中运行,这对于将在 serversocket 上持续侦听的套接字不是首选或必需的吗?
    • 您可以在自己的线程中创建服务。只需创建一个实例线程并在其中创建服务。
    • 很抱歉,我没有看到服务的优势?是它给了我开始和结束命令还是我错过了服务的主要优点?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    • 2012-08-20
    相关资源
    最近更新 更多