Android4.4之Keyguard--KeyguardMessageArea

本文深入探讨了Android系统中KeyguardMessageArea和SecurityMessageDisplay接口的实现细节,包括它们如何用于显示安全消息及交互逻辑。

KeyguardMessageArea继承自TextView,是各个锁屏界面布局中都包含的一个view。

首先来说SecurityMessageDisplay接口

SecurityMessageDisplay.java文件中定义如下

public interface SecurityMessageDisplay {
    public void setMessage(CharSequence msg, boolean important);
    public void setMessage(int resId, boolean important);
    public void setMessage(int resId, boolean important, Object... formatArgs);
    public void setTimeout(int timeout_ms);
    public void showBouncer(int animationDuration);
    public void hideBouncer(int animationDuration);
}
它的唯一实现KeyguardMessageArea.Helper,这是个public static内部类;

public static class Helper implements SecurityMessageDisplay {
    KeyguardMessageArea mMessageArea;//唯一一个成员变量,指向当前的KeyguardMessageArea实例

    //唯一的构造方法,这里必须传入一个KeyguardMessageArea变量
    Helper(View v) {
        mMessageArea = (KeyguardMessageArea) v.findViewById(R.id.keyguard_message_area);
        if (mMessageArea == null) {
            throw new RuntimeException("Can't find keyguard_message_area in " + v.getClass());
        }
    }

    //设置mMessage并调用securityMessageChanged方法去更新信息
    public void setMessage(CharSequence msg, boolean important) {
        if (!TextUtils.isEmpty(msg) && important) {
            mMessageArea.mMessage = msg;
            mMessageArea.securityMessageChanged();
        }
    }
    ......

    //调用hideMessage并置mShowingBouncer为true
    public void showBouncer(int duration) {
        mMessageArea.hideMessage(duration, false);
        mMessageArea.mShowingBouncer = true;
    }

    
    //调用showMessage并置mShowingBouncer为false
    public void hideBouncer(int duration) {
        mMessageArea.showMessage(duration);
        mMessageArea.mShowingBouncer = false;
    }

    //设置mTimeout
    public void setTimeout(int timeoutMs) {
        mMessageArea.mTimeout = timeoutMs;
    }
}


这个KeyguardMessageArea.Helper比较简单,重点关注它的构造方法就可以,下面看哪里会使用这个静态内部类。

待续......





评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值