首页 > 代码库 > service使用handler与Activity沟通的两种方法
service使用handler与Activity沟通的两种方法
通过之前的学习,我们知道了在主线程中声明一个handler实例并实现了消息的处理方法之后,我可以在子线程中用此实例向主线程发消息,在处理方法中获取消息并更新UI。
那么,如果我们想用handler在service中向activity文件传递消息呢?在这里提供了两种方法
方法一:
在想接收消息的Activity中,把handler实例声明为静态的公用的,即 public static Handler handler;
由于为公用静态的成员变量,那么就可以以 activityname.handler.sendmessage()方式来发送消息了
方法二:
在service中新建一个方法,传入activity的上下文,在service中定义一个静态的目标activity类成员变量,将得到的上下文赋予成员变量,并通过新定义的这个方法来启动服务。
例子如下
private static foregroundactivity activity; public static void onstar(Context c) { activity = (foregroundactivity) c; Intent intent = new Intent(c,foregroundservice.class); activity.startService(intent); }
service使用handler与Activity沟通的两种方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。