我正在创建一个使用 TCP 套接字连接到服务器的 android 应用程序。它不断地从这个套接字接收 xml 字符串,我需要在它到来时对其进行解析。目前,我已经在应用程序的同一进程中的服务中实现了套接字。
我有时会出现内存不足异常。我收到的 xml 字符串大约为 1-3mb。我的问题是,如果在一个单独的进程中运行我的服务,因为我的套接字经常需要工作,它会更有效吗?在android中实现应用程序生命周期的套接字的最佳方法是什么?
我正在创建一个使用 TCP 套接字连接到服务器的 android 应用程序。它不断地从这个套接字接收 xml 字符串,我需要在它到来时对其进行解析。目前,我已经在应用程序的同一进程中的服务中实现了套接字。
我有时会出现内存不足异常。我收到的 xml 字符串大约为 1-3mb。我的问题是,如果在一个单独的进程中运行我的服务,因为我的套接字经常需要工作,它会更有效吗?在android中实现应用程序生命周期的套接字的最佳方法是什么?
你绝对应该把你的套接字放在一个线程中。如果不是这种情况,您可以借此机会在网络超时时冻结整个应用程序。
有几种不同的方法可以在 android 中创建线程。我最喜欢的是创建一个扩展 Thread 的类。
看看 android doc 中的无痛线程和更一般的Processes and Threading 文章