【问题标题】:Keep socket connection between activities on android在android上的活动之间保持套接字连接
【发布时间】:2011-10-16 08:16:39
【问题描述】:

我正在 android 3.1 上开发一个应用程序,我有一个 Activity A,它有一个从 aSyncTask 扩展的子类,这个子类创建一个套接字并连接到服务器。我所有的沟通都很好。我收到消息并向服务器发送命令,但是当我收到特定命令时,我必须开始第二个活动(活动 B),但我不能丢失我的套接字并与服务器建立通信,而且我仍然必须能够从活动 B 接收命令并将命令发送到服务器。我怎样才能做到这一点?? 请帮忙!

【问题讨论】:

    标签: android sockets android-asynctask


    【解决方案1】:

    我的方法是实现service 并将所有网络连接代码移动/集中到服务中,对于所有想要使用套接字连接的活动,在 onCreate() 中绑定您的网络服务,然后在 onDestory() 中完成解除绑定

    【讨论】:

    • 这是正确的做事方式。您应该使用服务在后台执行所有长时间运行的任务(例如维护打开的套接字连接)。
    • 感谢 York 和 Kurtis,我会这样做的!!
    • 我还有一个问题。我应该使用服务还是 IntentService?如果我必须使用服务,我应该使用绑定还是启动服务?
    • 感谢您的回答。顺便说一句,OP,您应该将此设置为已回答。他回答了你原来的问题。
    • 根据 android 开发者网站,这不是推荐的做法。发布了一个替代答案。
    【解决方案2】:

    根据 Dianne Hackborn(Android 工程师)的说法,在活动之间传递网络连接的推荐做法是创建一个单例,任何活动都可以从那里访问和管理连接。请参阅here 并查看 Dianne 的第一篇帖子。

    android 开发者网站上的Services 页面(“基本”部分下的旁注)还提到,如果您需要运行需要在应用程序在后台继续执行的代码,您应该只使用服务.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-20
      • 1970-01-01
      • 1970-01-01
      • 2018-11-08
      • 2018-02-25
      • 2012-07-08
      • 2020-01-12
      • 1970-01-01
      相关资源
      最近更新 更多