如果子线程返回需要相当长的时间呢?例如,子线程中Thread.sleep(30000);这是UI线程不就NAR了吗

解决方案 »

  1.   


    如果子线程返回需要相当长的时间呢?例如,子线程中Thread.sleep(30000);这是UI线程不就NAR了吗UI线程应该是单独的线程,不要在主线程中
      

  2.   


    如果子线程返回需要相当长的时间呢?例如,子线程中Thread.sleep(30000);这是UI线程不就NAR了吗UI线程应该是单独的线程,不要在主线程中
    UI线程不就是主线程吗
      

  3.   

    如果你的UI是主线程,而你说的A是辅助线程的话,最好同时随便做个线程B,让30000毫秒里面线程B有对UI进行操作,这样就不会发生ANR了,,,
      

  4.   

    Q:Android中如何安排若干个线程的执行顺序呢?可以建一个线程队列,按照你安排好的顺序加入队列。Q:假如主线程依赖子线程A的执行结果,如何让A执行完成后主线程再往下执行呢?主线程等待时间过长不会造成NAR异常吗?主线程等待时间过长肯定会ANR。主线程依赖子线程A的话,应该用Handler来处理。不应该有任何的理由来阻塞主线程的运行。
      

  5.   

    赞成主线程等待时间过长肯定会ANR。主线程依赖子线程A的话,应该用Handler来处理。不应该有任何的理由来阻塞主线程的运行。 
      

  6.   

    你的設計是不合理的,裏面存在一個很矛盾的地方,那就是:爲什麼要讓線程A[b]執行完後[/b]在執行主線程呢?在android中子線程創建的目的就是爲了防止主線程被阻塞,出現ARN錯誤,而你這樣一種設計思路,這跟讓線程A在主線程中執行有什麼區別呢?我覺得是你想的太複雜,你其實不需要任何的操作直接讓子線程執行,讓UI線程正常執行,當線程A執行完後取得線程A取得的資源和數據後在加載到UI線程中就行了。
      

  7.   

    (sorry,输入法没改过来,重新输入一遍)你的设计是不合理的,里面存在一个很矛盾的地方,那就是:为什么要让线程A执行完后在执行主线程呢?在android中子线程创建的目的就是为了防止主线程被阻塞,出现ARN错误,而你这样一种设计思路,这跟让线程A在主线程中执行有什么区别呢?我觉得是你想的太复杂,你其实不需要任何的操作直接让子线程执行,让UI线程正常执行,当线程A执行完后取得线程A取得的资源和数据后在加载到UI线程中就行了。