当前位置:首页 > 未命名 > 正文内容

service使用handler与Activity沟通的两种方法

u3blog10年前 (2015-02-03)未命名350

通过之前的学习,我们知道了在主线程中声明一个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);
    }

  

扫描二维码推送至手机访问。

版权声明:本文由u3blog发布,如需转载请注明出处。

本文链接:https://u3blog.xyz/?id=113

分享给朋友:

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。