在我的应用程序中,我使用的是 PHP Web 服务器。
在主要活动中,我使用用户名和密码连接到服务器。使用这些值,服务器开始我的会话。
因此,为了维护会话,我在整个应用程序中使用相同的 HTTP 客户端。
public static HttpClient httpclient = new DefaultHttpClient();
但问题是,大多数情况下,如果我想从服务器获取数据,我会使用后台线程来获取数据,然后更新 UI 线程。因此,当我在后台分配客户端并且用户尝试通过单击 UI 上的按钮来建立其他连接时。它给了我这个例外
Invalid use of SingleClientConnManager: connection still allocated.
我正在捕获此异常,因此应用程序不会崩溃,但会话正在被破坏。因此我最终在某些视图中显示“空”。
谁能帮助我如何以更好的方式维护会话以及如何避免此 SingleClientConnManager 异常。
谢谢你
我想到了这种方法:
当应用程序崩溃或给出 singleClientConnManager 异常(在任何一种情况下会话都丢失)时,使用java.lang.Thread.UncaughtExceptionHandler
i 再次连接到服务器,使用使用 Shared Preferences 存储的用户名和密码(这将再次启动会话),然后重新启动当前活动。我没有尝试过,但我想知道这是一个好习惯吗?