加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在不同的线程中调用Android服务的方法.它仍然在主线程上

发布时间:2020-12-15 04:27:34 所属栏目:Java 来源:网络整理
导读:如果我理解正确,默认情况下,Android服务在主UI线程上运行. 因此,对于任何非主线程操作,我发现人们建议在服务中启动一个单独的线程. 但是,我的问题是,如果在另一个线程中调用Service的方法,即AsyncTask或新的Thread(…).start();,Service的方法是否在调用线程
如果我理解正确,默认情况下,Android服务在主UI线程上运行.
因此,对于任何非主线程操作,我发现人们建议在服务中启动一个单独的线程.

但是,我的问题是,如果在另一个线程中调用Service的方法,即AsyncTask或新的Thread(…).start();,Service的方法是否在调用线程中运行?或者它是否运行在主线程上,据说服务正在运行?

换一种说法,

new Thread(new Runnable() {

    @Overrde
    public void run() {
        myAndroidService.doSomething();
    }
}).start();

会在这个新线程中调用MyAndroidService#doSomething()吗?

解决方法

方法总是在调用它的线程中运行.

一个方法实际上并不属于任何线程,所以是的,即使该方法在您的服务中定义,它也将在AsyncTask线程中执行,而不是您的服务运行的主线程.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读