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