我有一个启动和维护后台线程的Android服务。
有时,后台线程需要在主线程上进行回调。我对如何做这件事感到困惑。
我不能调用this.runOnUiThread,因为"this“是服务的实例,而不是Activity,并且服务没有runOnUiThread方法。
我也不能创建或执行AsyncTask,因为AsyncTask的文档说明构造函数和execute方法都必须从UI线程调用。
我是否需要维护对使用该服务的活动的引用并调用其runOnUiThread方法,或者是否有其他方法可以在UI线程上运行某些内容?
谢谢。
发布于 2012-06-26 07:51:10
如果我不能直接访问Activity (出于某种原因),我会时不时地使用以下代码;
new Handler(Looper.getMainLooper()).post(mYourUiThreadRunnable);
发布于 2020-05-27 17:42:22
对于Kotlin:
Handler(Looper.getMainLooper()).post {
/*My task*/
}
https://stackoverflow.com/questions/11198872
复制相似问题