解决方案 »

  1.   

    我感觉比较好的方法是后台开启一个service,在这个service中开启线程来执行耗时任务,这样效果比较好
      

  2.   

    方法-:
    楼主可以使用Handler+Thread来实现,在2.3版本后的android中是不允许在主线程中访问网络的,主要是为了防止出现ANR错误,在android中提供了一种线程间互相通信的机制,而这个机制主要由Handler,Message,Looper,MessageQueue四个对象组成的。楼主可以写一个Handler的子类并且重写他的handlerMessage(Message msg)方法,然后在你的Activity的主线程中实例化你写的Handler的子类对象,开一个子线程用于下载数据,当数据下载完成后新建一个Message对象并把你所下载的数据放在Message中然后调用Handler的sendMessage(Message msg)方法数据发送到主线程,主线程接收到消息后对UI进行更新。
    方法二:
    使用AsyncTask(是android对Thread+Handler的高级封装)具体使用方法希望楼主参见android官方文档,因为这是android开方者必须要掌握的最后在说一句,Handler+Thread在android的使用是非常多的,他也是非常重要的,如果楼主想要在从事android开发就必须要搞清楚Handler,Message,Looper,MessageQueue四个对象的关系,这在android面试中是必考的知识点。