疑难杂症之——Android点击Home键无法返回主界面,并在松开时闪现锁屏界面
2017-06-21 15:16
543 查看
本来用的好好地APP却在某款手机上出现了点Home键只闪屏无法回主界面的问题,首先提出这个问题的时候头都大了,你Home键不返回了是你系统的问题啊关我应用毛事儿,结果细心查探下来,果然是应用的锅,因为应用进程被杀之后就一切正常了 - -||| 得嘞~背了!既然背了,研究下咋解决吧!记录一下备查,也给我的无知Mark一下
直接说问题的关键吧,就在下面这几行代码:
首先说明一下KeyguardManager的内部类KeyguardLock,它有两个方法用来禁用和启用屏保:
void disableKeyguard ()——屏蔽屏保
Disable the keyguard from showing.
void reenableKeyguard ()——启用屏保
Reenable the keyguard.
但是禁用disable方法并不是解锁屏幕,只是把锁屏功能禁掉了,这也导致了今天要说的这个问题,在某些系统上锁屏界面仍然存在而且并没有解锁,导致按Home键的时候Home的实际功能被锁屏界面拦截而无法进入主页。而且调用完disable这个方法后,除非应用进程被杀死,否则按电源键只是黑屏,无法锁住屏幕的。
其次,KeyguardLock对象必须是同一个才能在disable之后重新reenable,所以要使reenable生效的话要把调用disable的对象存起来便于再reenable,而且单纯的调用reenable方法是没有任何作用的,所以你锁不了其他程序打开的屏幕,有时候甚至锁不了自己曾经打开的锁(对象不是同一个的话)
所以说来,这个disableKeyguard ()——屏蔽屏保的方法还是不能随意乱用啊,所以我干脆把这部分代码去掉,问题就完美解决了!唉~辛辛苦苦搞到大半夜的问题,最终原因却只是多了一行代码,有种蛋蛋的悲哀呢~积累经验吧,骚年!
如果要在锁屏的时候把自己的activity覆盖锁屏界面显示出来的话,不妨试试下面代码:
声明一下这个Android系统的版本是-6.0(不算是旧版本了):
直接说问题的关键吧,就在下面这几行代码:
// 屏蔽系统的屏保 KeyguardManager manager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); KeyguardManager.KeyguardLock lock = manager.newKeyguardLock("KeyguardLock"); lock.disableKeyguard();
首先说明一下KeyguardManager的内部类KeyguardLock,它有两个方法用来禁用和启用屏保:
void disableKeyguard ()——屏蔽屏保
Disable the keyguard from showing.
void reenableKeyguard ()——启用屏保
Reenable the keyguard.
但是禁用disable方法并不是解锁屏幕,只是把锁屏功能禁掉了,这也导致了今天要说的这个问题,在某些系统上锁屏界面仍然存在而且并没有解锁,导致按Home键的时候Home的实际功能被锁屏界面拦截而无法进入主页。而且调用完disable这个方法后,除非应用进程被杀死,否则按电源键只是黑屏,无法锁住屏幕的。
其次,KeyguardLock对象必须是同一个才能在disable之后重新reenable,所以要使reenable生效的话要把调用disable的对象存起来便于再reenable,而且单纯的调用reenable方法是没有任何作用的,所以你锁不了其他程序打开的屏幕,有时候甚至锁不了自己曾经打开的锁(对象不是同一个的话)
所以说来,这个disableKeyguard ()——屏蔽屏保的方法还是不能随意乱用啊,所以我干脆把这部分代码去掉,问题就完美解决了!唉~辛辛苦苦搞到大半夜的问题,最终原因却只是多了一行代码,有种蛋蛋的悲哀呢~积累经验吧,骚年!
如果要在锁屏的时候把自己的activity覆盖锁屏界面显示出来的话,不妨试试下面代码:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); ... ... }
声明一下这个Android系统的版本是-6.0(不算是旧版本了):
相关文章推荐
- android开发拍照点击保存无法返回上一界面
- android中使用Notification打开详情界面activity,点击返回键和按钮返回主界面
- android 实现点击返回键返回主界面当前界面不销毁
- 关于 android app 返回键模拟 home键 功能的介绍_仿QQ返回键 又重新回到当前界面_锁屏状态 又要重新唤醒
- android MainActivity采用singleTask模式时,点击home键无法保存离开前的界面问题
- Android中使用Notification并通过点击Notification启动启动通知详细Activity,点击返回键和按钮返回主界面
- Android Splash界面支持用户点击 直接进入主界面
- Android中PopupWindow点击窗口之外和返回键消失,界面锁定的实现。
- 在应用程序的非第一个activity点击home键,再点击app图标,无法进入退出时界面怎么办
- windows无法验证,点击登陆后又返回登陆界面
- 自定义锁屏界面,锁定系统,禁止返回和home键关闭界面
- android登录界面点击返回键时的处理
- android解锁界面,插上USB弹出打开USB存储设置界面,按HOME键/返回键直接回到launcher,而非滑动锁屏界面
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决
- Android安卓拍照点击保存后无法返回
- Android Splash界面支持用户点击 直接进入主界面
- Android Splash界面支持用户点击 直接进入主界面
- Android 由 android:launchMode="singleInstance“引发的界面无法返回的情况
- Android生命周期,点击home键和返回键时的顺序以及MENU菜单键简单测试
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决