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线程中执行,而不是您的服务运行的主线程. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |