UI线程、handler、service间的关系

来源:互联网 发布:windows xp镜像 编辑:程序博客网 时间:2024/05/19 19:44

       在主界面中启动了一个service,service需要进行一些耗时操作(如图一)。结果发现UI界面会有停顿的现象。仔细查看资料后发现,原来service和也在UI线程中,而handler和调用它的线程在同一线程中,所以service在运转时会阻塞UI线程。找到阻塞的原因就好办了。

     

      解决方法一:将service设置成remote。设置成remote后又有产生了一个问题——该如何管理service。想要管理remote服务需要借助于AIDL(Android Interface Definition Language)。

 

<service android:name="com.ex.MyService" android:process=":remote"/>


 

   解决方法二:由UI线程开启一个service,在service再启动一个线程,在线程中来处理耗时操作(如图二)。

原创粉丝点击