解决方案 »

  1.   

    使用TimerTask navigationTask = new TimerTask() {
                    @Override
                    public void run() {
                    }
                };
                navigationTimer.schedule(navigationTask, 100, 5 * 1000);
    navigationTimer = new Timer();
    这个就可以设置间隔多少时间运行一次
      

  2.   

    这个你要理解AsyncTask,他是一个线程池,默认最多是5个线程可以同时执行,第六个就要排队等待了,不知道你的情况是不是这个原因导致的
      

  3.   

    AsyncTask默认是用SerialExecutor执行异步任务,也就是说都是按顺序一个一个执行的
      

  4.   


    AsyncTask与handler是不是共用一个线程池啊?因为在测试中发现后面的thread+handler实现的异步处理也是如此问题一样,时好时不好。
      

  5.   

       与android版本有关系吗?我编写时用的是android版本2.1,测试时用的手机是4.4。程序在电脑上的模拟器上测试就不会出现这种问题。
      

  6.   


    AsyncTask与handler是不是共用一个线程池啊?因为在测试中发现后面的thread+handler实现的异步处理也是如此问题一样,时好时不好。
    这个当然不是了,handler+thread是重新new的一个新线程,不存在线程池,由此可见不是线程的问题而是你代码实现的问题,最好能贴出来部分代码
      

  7.   

       AsyncTask在1.6之前是在一个线程中串行,之后是依赖一个线程池。
       Honeycomb.之后又被改回默认单线程串行,新增了并行执行api。   所以2.1下默认是一个最大5个线程的线程池。可以参考 http://blog.csdn.net/pipisky2006/article/details/8535454
      

  8.   


    模拟器是2.1 或者2.3吧,3.0之后默认execute就是串行执行了,使用executeOnExecutor可以并行提交
      

  9.   

     http://blog.csdn.net/hitlion2008/article/details/7983449  看看这个问题是不是你的问题