在Android中,有些比较强的提醒,需要用户紧急处理的内容。需要唤醒屏幕,甚至在锁定屏幕的情况下,也要显示出来。例如,来电界面和闹钟提醒界面。这是怎样实现的呢?

其实,实现起来非常简单。只要给Activity的Window添加如下属性即可:

@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); ... } 

注意这里的FLAG_SHOW_WHEN_LOCKEDFLAG_TURN_SCREEN_ON,从名字上就能看出其作用。FLAG_TURN_SCREEN_ON使Activity启动的时候能够点亮屏幕。FLAG_SHOW_WHEN_LOCKED能够在屏幕锁定的时候,也能显示。

关于FLAG_SHOW_WHEN_LOCKED这个flag,官方文档说明如下:

Window flag: special flag to let windows be shown when the screen is locked. This will let application windows take precedence over key guard or any other lock screens. Can be used with FLAG_KEEP_SCREEN_ONto turn screen on and display windows directly before showing the key guard window. Can be used withFLAG_DISMISS_KEYGUARD to automatically fully dismisss non-secure keyguards. This flag only applies to the top-most full-screen window.

这段话的大概意思是,这个Flag能够让windown在锁屏的时候,在锁屏之上显示。可以配合FLAG_KEEP_SCREEN_ON(保持屏幕常亮)和FLAG_DISMISS_KEYGUARD(解锁屏幕)等Flag使用。需要特别注意的是最后一句话,意思就是这个flag只有是全屏幕的window才起作用。例如,对你的Activity使用了Dialog的Theme,如下:

<activity android:theme="@android:style/Theme.Dialog" /> 

这时,你的Activity将不能显示在锁屏之上。

另外,在锁屏上显示Activity,为了不让界面显得太突兀,你可能还想能够使用系统的屏保作为你的Activity背景,系统闹钟就是这么做的。要实现这样的功能也特别容易,只要把Activity的背景设为透明即可,例如你可以为你的Activity定义如下Theme:

<style name="FullScreenTheme" parent="@android:style/Theme.Light.NoTitle"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:colorBackgroundCacheHint">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsTranslucent">true</item> <item name="miui:windowTranslucentStatus">transparentDark</item> </style> <activity android:theme="@style/FullScreenTheme" /> 

题外话,我们可以通过如下方法判断,系统是否处在锁屏状态:

KeyguardManager km =  (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); boolean showingLocked = km.inKeyguardRestrictedInputMode(); 

转载于:https://www.cnblogs.com/xuweiwei/p/4437185.html

锁屏显示Activity相关推荐

  1. 锁屏显示Activity的方法

    1.设置可以锁屏显示的参数 public void setActivityForLockScreen(boolean isLockActivity) { if (isLockActivity) { t ...

  2. Android开发之锁屏显示Activity

    类似闹铃,微信视频通话,qq视频通话等都需要在锁屏状态下点亮屏幕,或者启动activity之类的. 最近在做视频通话是基于环信服务的,和微信视频通话是一样的,只不过是Activity横竖屏问题.结果就 ...

  3. 网易云音乐等三方app如何在锁屏显示

    这里我本来准备反编译一下网易云音乐,但是发现github上有一个仿照网易云音乐的开源项目,参考自 https://github.com/aa112901/remusic ,其他的应用在锁屏上显示的原理 ...

  4. Android 8.1 修改锁屏显示时间

    平台 RK3399 + Android 8.1 需求 加长锁屏显示时间, 延长用户解锁时间 补丁 |-- frameworks/base/core/res/res/values/config.xml ...

  5. 苹果手机输入屏保后锁屏_iPhone丢失后锁屏显示你的联系方式方法教程

    IfFound:iPhone丢失后锁屏显示你的联系方式.在公司.校园等某个角落,你捡到了一台iPhone,可是锁屏着,不知道密码,如何才能找到失主呢?IfFound它可以帮助失主在iPhone锁屏界面 ...

  6. 苹果天气不显示_手机锁屏显示天气预报可不只安卓有,iPhone也能显示!太实用了吧...

    可能很多朋友现在使用的是iPhone,以前却是安卓,那么可能就会有这样的一些抱怨,安卓手机上有的锁屏显示天气功能为什么苹果手机没有?在这里笔者想给大家解答一下,其实iPhone是有这个功能的,只不过因 ...

  7. android11锁屏显示天气,手机锁屏显示天气预报可不只安卓有,iPhone也能显示!太实用了吧...

    原标题:手机锁屏显示天气预报可不只安卓有,iPhone也能显示!太实用了吧 可能很多朋友现在使用的是iPhone,以前却是安卓,那么可能就会有这样的一些抱怨,安卓手机上有的锁屏显示天气功能为什么苹果手 ...

  8. 国产手机锁屏显示权限检测

    VIVO手机 /*** 判断vivo锁屏显示 1未开启 0开启* @param context* @return*/public static int getVivoLockStatus(Contex ...

  9. android 闹钟锁屏页,Android AlarmManager 锁屏显示闹钟

    锁屏状态下点亮屏幕,并弹出闹钟提示信息,可以在锁屏界面上取消闹钟:使用广播接收闹钟定时: 下面是例子里的核心代码如下 android 设置定时闹钟(包括提醒一次和循环提醒): Intent inten ...

  10. android锁屏显示应用程序,今日应用:微软又给 Android 做了一款锁屏应用

    微软又做了一款 Android 锁屏应用,质量还不错.如果你已经设置了锁屏,Picturesque可能让你再解锁一次你真的需要在锁屏就处理这么多任务吗? 微软又来给 Android 提供应用了,他们昨 ...

最新文章

  1. freemarker-ide eclipse安装地址 安装方法 页面静态化
  2. 教师要与时俱进,不要自以为正确
  3. 一道比较实用的MySQL面试题:游戏数据充值查询
  4. html库存代码,库存汇总.html
  5. Linux环境下查看CPU资源的命令
  6. 4.企业应用架构模式 --- Web表现层
  7. android炫酷动画源码,QQ菜单、瀑布流、二维码源码
  8. 字符编码-带你走出Unicode与UTF-8的误区
  9. hihocoder 1224 赛车
  10. 如何使用FFmpeg命令处理音视频
  11. arduino 红外遥控小车
  12. python案例2-简易网吧系统
  13. 黄金圈理论和知识体系
  14. Windows11 Android Srudio无法连接手机,报错Error initializing ADB: Unable to create Debug Bridge
  15. 计算机网络复习04——网络层
  16. mysql的临时表简介
  17. kafka高性能的原因
  18. CIO访谈实录:2016里约奥运会CIO伊丽·雷森迪
  19. 设置Android软键盘的默认不弹出
  20. 智慧农业大数据平台的“智慧”体现在哪些方面?

热门文章

  1. mm游戏大全HTML5小游戏,HTML5小游戏——看你有多色(示例代码)
  2. C/C++快速读写磁盘数据的方法
  3. pve安装黑群晖直通硬盘_PVE系列二:安装黑群晖DSM系统
  4. 暴风播酷云J3455局域网smb传输不稳定的另一种解决方案
  5. STM32:SPI驱动ADXL345
  6. 笔记本电脑无法在插电时睡眠(续)
  7. 一张废手机卡的作用......
  8. 关于marked数组处理
  9. fastreport 横向分栏_fastreport分栏分组显示问题(急贴盼解决)
  10. 手动连接wifi失败分析