service就是后台啊,不是在UI线程里

解决方案 »

  1.   

    但是如果从Activity中启动一个Service,如果这个Service里面有调用Thread.sleep的话会阻塞UI线程
      

  2.   

    但是如果从Activity中启动一个Service,如果这个Service里面有调用Thread.sleep的话会阻塞UI线程这得看你线程里做什么操作了
      

  3.   

    但是如果从Activity中启动一个Service,如果这个Service里面有调用Thread.sleep的话会阻塞UI线程这得看你线程里做什么操作了
    就是Activity里面用startService()打开一个Service,然后这个Service的startCommand方法的内容是:
     @Override
        public int onStartCommand(Intent intent, int flags, int startId){
            try{
                Thread.sleep(10000);
            }catch (Exception e){        }
            System.out.println("END.................");
            return START_STICKY;
        }然后这样就会导致主线程阻塞
      

  4.   

    Thread.sleep(10000);   此操作是在主线程当中执行,肯定阻塞
      

  5.   

    补充,SERCIVE是运行在主线程中的,只是不可见,后台操作,SERVICE里面操作是新建主线程完成操作
      

  6.   

      “而BroadcastReceiver如果是在程序中注册的话就运行在UI线程中,而在AndroidManifest.xml中注册的则运行在另外的进程当中,而ContentProvider是本程序中注册的则在UI线程中运行,是另外一个程序中注册的则在另外一个进程中运行”    那请问这说法正确吗?
      

  7.   

      “而BroadcastReceiver如果是在程序中注册的话就运行在UI线程中,而在AndroidManifest.xml中注册的则运行在另外的进程当中,而ContentProvider是本程序中注册的则在UI线程中运行,是另外一个程序中注册的则在另外一个进程中运行”    那请问这说法正确吗?看上去大体说的是没错吧,androir 四大组件都运行在主线程中,关于耗时操作,阻塞,新建线程操作的问题,百度下吧
      

  8.   

    问一下,主线程不就是UI线程吗?
    http://blog.csdn.net/hitlion2008/article/details/7657629