-1

我正在寻找这个问题的最佳实践。

基本上,在进入主要活动之前,我有一个带有“启动”活动的应用程序。用户根本无法做任何事情,因为应用程序需要首先通过抛出一些 HTTP 请求与服务器同步。

最简单的方法是在每个 HTTP 请求的 UI 线程上按顺序运行。这有什么特别的问题吗?(即处理Android框架通常会被阻止?,...)。我想用第一个版本来实现这个,然后用下面列出的方法进行改进。

否则,从用户的角度来看,是否更好地为每个 HTTP 请求同时启动一个 AsyncTask,并在我可以启动下一个活动时在 UI 线程中同步。

干杯。l_ingenu

4

3 回答 3

1

用于AsyncTask进行 HTTP 调用,因为从 Honeycomb 开始,不允许在 UI 线程上使用 Internet 操作(除非您更改策略)。

调用完成后,返回所需的结果onPostExecute并决定是继续下一个Activity还是向用户抛出错误。

于 2012-10-24T14:19:21.293 回答
0

首先,
您必须使用一个单独的线程,使用 UI 线程进行网络活动,这是一个很好的做法
[http://developer.android.com/training/basics/network-ops/connecting.html][1]


其次,您需要在这里做出选择:

如果您的整个应用程序依赖于来自服务器的数据并且必须在应用程序中显示内容之前获取数据,您应该使用 AsyncTask 并在 onPostExecute() 中移动到下一个 Activity。

如果您在应用程序中使用数据,并且在用户查看使用服务的第一个屏幕中没有太大影响。

于 2012-10-24T14:32:16.143 回答
0

我建议您不要使用 AsyncTask,而是使用IntentService :)

于 2012-10-24T14:17:29.280 回答