【发布时间】:2012-07-02 22:43:53
【问题描述】:
我正在编写一个应用程序,它在启动时向服务器发送一条消息并等待响应。为了实现这一点,我使用了 DefaultHttpClient.execute 方法,并将响应时间设置为默认值。整个操作作为一个单独的线程触发,该线程设置为守护线程,因为我不希望当用户决定关闭应用程序过快(同时仍在等待服务器响应)时阻止应用程序。尽管如此,当我尝试通过 android.os.Process.killProcess 调用终止应用程序时,会有明显的延迟,我猜这与 DefaultHttpClient.execute 机制(不是守护线程执行?)有关。有没有办法在 killProcess 调用之后终止我的连接?
【问题讨论】:
-
你为什么要杀死你的进程?这真的不是一件好事。
-
这是在您按下退出按钮时执行的操作。我知道这不是一个好的做法,但知道这一点并且知道大多数用户更喜欢在游戏中实现此按钮,我有义务执行该操作。
-
如果“大多数用户更喜欢在游戏中实现此按钮”,那么您的应用程序中存在错误,因此普通方法(例如,按 HOME)会给这些用户带来一些痛苦。也许,与其试图杀死你的进程,你应该首先确定如何解决让你的应用程序表现更好的问题。
-
回答:在(AsyncTask 结合 HttpPost.abort 调用的使用)找到了完美的解决方案:stackoverflow.com/questions/7007731/…