虽说asynctask是后台任务,但是也不适合做耗时长的任务

解决方案 »

  1.   

    官方文档给的说明是,asynctask并不构建一个通用线程框架,而且不能执行耗时操作,最多执行数秒的时间。说明asynctask和一个普通的线程是不一样的。
      

  2.   

    多谢指导,请问这个有好的方式处理么?搞了aidl要安装两个应用,用户体验不好
      

  3.   


    你也可以在另一个服务中检测网络信号,通过广播来通知UI线程更新界面。
    多谢,这个思路不错,已经实现了,还有个问题,当按home键 应用在后台时,接收不到广播,如何当应用重新回到界面时,能将隐藏的这段时间的信号也显示出来?
      

  4.   


    你也可以在另一个服务中检测网络信号,通过广播来通知UI线程更新界面。
    多谢,这个思路不错,已经实现了,还有个问题,当按home键 应用在后台时,接收不到广播,如何当应用重新回到界面时,能将隐藏的这段时间的信号也显示出来?你按HOME键,UI线程并没有退出,还是会接收到广播的,在接收到广播时你将状态保存起来,然后回到界面时会执行OnResume,你在OnResume中将相应的数据更新到界面上就是。
      

  5.   

    service运行在主线程中,service会阻塞 ui, asyTask 的doInBackground 是另开线程的。
      

  6.   

    多谢,已经解决了~~
    你也可以在另一个服务中检测网络信号,通过广播来通知UI线程更新界面。
    多谢,这个思路不错,已经实现了,还有个问题,当按home键 应用在后台时,接收不到广播,如何当应用重新回到界面时,能将隐藏的这段时间的信号也显示出来?你按HOME键,UI线程并没有退出,还是会接收到广播的,在接收到广播时你将状态保存起来,然后回到界面时会执行OnResume,你在OnResume中将相应的数据更新到界面上就是。
    多谢,已经解决了~~