【问题标题】:How to handle activity life cycle involving sockets in Android?如何处理 Android 中涉及套接字的活动生命周期?
【发布时间】:2011-02-25 18:17:57
【问题描述】:
  • 我有一个 Android 活动,它反过来启动一个线程。
  • 在线程中,我打开了一个持久的 TCP 套接字连接。
  • 当套接字连接到服务器时,动态数据被下载。
  • 当接收到数据时,线程使用 Handler 类向 Activity 发送消息。

现在,如果用户碰巧从纵向模式切换到横向模式,则 Activity 会收到 onDestroy 调用。此时我关闭套接字并停止线程。

当 Android 切换横向模式时,它会再次调用 onCreate,我必须重新连接套接字。此外,活动收到的所有数据都需要再次下载,因为服务器无法知道之前发送过的内容,即没有“恢复”功能。

因此问题在于,当横向模式更改时,会一直重新发送大量数据。

我在这里有什么选择?

  • 我是否应该创建一个服务来处理流向服务器的套接字流量,这样我总是可以得到服务器在服务中发送的所有数据。
  • 或者我应该一起禁用横向模式吗?
  • 或者我最好的选择是重写我的服务器,这是一项非常大的工作:-)

欢迎所有输入 :-)

/亨里克

【问题讨论】:

标签: android sockets application-lifecycle


【解决方案1】:

要么阻止您的活动重新启动 (Activity restart on rotation Android),要么实施您的应用程序管理的服务。 Service 方法在我见过的应用程序中非常流行,并且在断开连接时允许您具有一定的灵活性。

【讨论】:

  • 肯定创建一个Service;您不仅会在屏幕旋转时遇到相同的“生命周期”问题,而且如果用户按下 Home、来电、屏幕空闲等...
  • 感谢您的意见!真的很感激。
猜你喜欢
  • 2013-01-13
  • 2011-12-18
  • 1970-01-01
  • 1970-01-01
  • 2019-09-11
  • 1970-01-01
  • 2011-06-27
  • 2014-09-26
  • 2019-02-02
相关资源
最近更新 更多