如何实现在锁屏上层显示Activity,如qq锁屏显示消息弹框

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/halibobo1998/article/details/50624050

用过Android端手机QQ的用户都知道,qq锁屏显示消息弹框,类似这样

这里写图片描述

通过获取最上层activity的命令

adb shell dumpsys activity | findstr “mFocusedActivity”
可以得到qq消息弹框用的是activity,实现方式也比较简单,
一、新建弹框的activity,如LockActivity ;在LockActivity 中onCreate()中加上锁屏展示

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); 
         getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,  WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);     getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);

}

二、在AndroidManifest.xml中更改LockActivity 的
android:theme="@style/myTransparent"
style中设置新的样式

<style name="myTransparent">
        <item name="android:windowBackground">@color/transparent</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
        <item name="android:backgroundDimEnabled">true</item>
    </style>

此举是设置activity的样式半透明,这样就不会把系统锁屏遮住
最后在service中启动这个activity就可以了

展开阅读全文

没有更多推荐了,返回首页