gtd*_*vel 4 service user-interface multithreading android handler
我一直在寻找一些好的文档或一个很好的例子.我需要从我在后台运行的服务中的工作线程更改我的主活动UI.据我了解,我知道,我想用某种处理程序的工作,但我不知道究竟如何处理这个.
有没有人有任何想法或好的例子,他们可以指导我?我正在更改的UI元素是一个TextView,它只是通知用户线程的状态.
谢谢你的帮助.
您所要做的就是Handler
在UI线程上创建一个:
private Handler serviceHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
someFunctionInTheUIThread();
}
};
Run Code Online (Sandbox Code Playgroud)
然后将其传递给您的服务.您可以在服务中拥有这样的功能:
public void registerHandler(Handler serviceHandler) {
handler = serviceHandler;
}
Run Code Online (Sandbox Code Playgroud)
然后像这样传递处理程序:
theService = ((LocalBinder) service).getService();
theService.registerHandler(serviceHandler);
Run Code Online (Sandbox Code Playgroud)
然后发回信息:
Message msg = handler.obtainMessage(IDENTIFIER, "Message or data");
handler.sendMessage(msg);
Run Code Online (Sandbox Code Playgroud)