答案 0 :(得分:0)
您必须将正在通信的所有代码移动到另一个线程中。最好的方法是使用asyncTask。您必须覆盖doInBackground方法,并将阻止调用的所有代码放入此方法。 asyncTask将在单独的线程中执行此方法中的所有操作。如果您还覆盖onPostExecute,则可以使用此方法更新视图。 onPostExecute在UI线程中执行,因此允许在用户界面上进行更改。
通常,如果您运行的代码需要一些时间才能完成,请始终将此代码放入单独的线程中,使UI显示进度条并等待线程完成。 如果您的UI线程工作繁重且无法在一定时间内响应用户输入,那么android会将您的应用标记为崩溃并提供用户销毁它。