我一直在寻找一些好的文档或一个很好的例子。我需要从后台运行的服务中的工作线程更改我的主要 Activity UI。据我所知,我知道我应该使用某种处理程序,但我不确定如何处理这个问题。
有没有人有任何想法或好的例子可以指导我?我正在更改的 UI 元素是一个 TextView,它只是通知用户线程的状态。
感谢您的帮助。
最佳答案
您所要做的就是在 UI 线程上创建一个 Handler
:
private Handler serviceHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
someFunctionInTheUIThread();
}
};
然后将其传递给您的服务。您可以在服务中拥有这样的功能:
public void registerHandler(Handler serviceHandler) {
handler = serviceHandler;
}
然后像这样传递处理程序:
theService = ((LocalBinder) service).getService();
theService.registerHandler(serviceHandler);
然后发回消息:
Message msg = handler.obtainMessage(IDENTIFIER, "Message or data");
handler.sendMessage(msg);
关于android - 从服务中的线程更改主 Activity 用户界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7285785/