我正在寻找这个问题的最佳实践。
基本上,我在进入主要活动之前有一个“启动”活动的应用程序。用户根本无法做任何事情,因为应用程序需要首先通过抛出一些HTTP请求来与服务器进行同步。
最简单的方法是在每个HTTP请求的UI线程上按顺序运行。这有什么特别的问题吗? (即处理Android框架通常会阻止?,...)。我希望在第一个版本中实现这一点,然后使用下面列出的appraoch进行优化。
否则,从用户的角度来看,最好是同时为每个HTTP请求启动一个AsyncTask,并在我启动下一个活动时在UI线程中进行同步。
干杯。 l_ingenu
答案 0 :(得分:1)
使用AsyncTask
进行HTTP调用,因为从Honeycomb开始,不允许在UI线程上使用互联网操作(除非您更改策略)。
完成通话后,将所需结果返回onPostExecute
,然后决定是继续使用下一个Activity
还是向用户抛出错误。
答案 1 :(得分:0)
我建议你不使用AsyncTask,而是使用IntentService:)
答案 2 :(得分:0)
首先要做的事情
你必须使用一个单独的线程使用UI线程进行网络活动,这是一个很好的做法
[http://developer.android.com/training/basics/network-ops/connecting.html] [1]
其次你需要在这里做出选择:
如果您的整个应用程序依赖于来自服务器的数据并且必须在显示应用程序中的内容之前获取,则应使用AsyncTask并移至onPostExecute()中的下一个Activity。
如果您正在使用应用程序中的数据,并且在用户正在查看使用服务的第一个屏幕中没有那么多影响。