当我想关闭套接字时如何处理应用程序终止?

Posted

技术标签:

【中文标题】当我想关闭套接字时如何处理应用程序终止?【英文标题】:How do I handle the app termination when I want to close a socket? 【发布时间】:2012-07-15 14:18:44 【问题描述】:

假设我有三个活动 A、B 和 C。这些活动都使用套接字连接来接收数据。 socket连接是Telnet连接,不能随意关闭重连。

如果当前返回栈是A > B > C,Activity A可能会被android销毁,所以我不能在onDestroy()方法中关闭socket,否则Activity C将无法接收到数据插座。

我想在应用程序终止时关闭套接字。当我在根活动上按 BACK 时,我可以手动关闭它。但是,如果应用在后台被杀死,我该如何处理关闭socket并释放相关资源呢?

谢谢!!

【问题讨论】:

【参考方案1】:

其实我建议你只使用一个Activity/task 来沟通。所有其他人应使用CommunicationManager。还要记住onDestroy 并不总是被调用。在您的开始/结束时使用 onPause - 用于活动 - 以确保您以井井有条且安全的方式结束所有内容。

基本上我会创建一个异步后台任务来处理通信,这样您的 UI 就不会被阻塞。

【讨论】:

以上是关于当我想关闭套接字时如何处理应用程序终止?的主要内容,如果未能解决你的问题,请参考以下文章

如何处理应用程序启动时发生的 ASP.NET 应用程序错误以及 MVC 视图中的传输和显示错误?

如何处理应用程序级别的“值'0000-00-00'不能表示为java.sql.Timestamp”错误?

如何处理应用内计费库中的多个用户? (最佳实践)

如何处理应用内购买的退款/取消

程序设计中关于Java 异常处理应注意的问题

linux中的菜单是如何工作的? [关闭]