zoukankan      html  css  js  c++  java
  • 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);
        }
    

      

    -----人若无名,则可专心练剑
  • 相关阅读:
    javaEE_maven_struts2_tomcat_first
    企业框架-Spring
    MyBatis延迟加载及缓存
    MyBatis注解及动态Sql
    框架之MyBatis
    SQL中的一些关键字用法
    Mysql————基本sql语句
    表单验证
    java中的锁——列队同步器
    线程同步Lock锁
  • 原文地址:https://www.cnblogs.com/u3shadow/p/4271112.html
Copyright © 2011-2022 走看看