android手机系统锁屏出现了,其他的提示框几不会弹出来,这是怎么做到的?
举例:我有一个短信应用,在收到短信时会弹出一个提示框出来提示给用户,但是如果这时手机系统的锁屏界面起来了,我弹出的提示框就不显示了,要等解开系统锁屏才会看到该弹出的提示框。请问一下大牛们:系统是怎么将自己的锁屏界面置于界面的最顶端而不受其他的提示框盖上来的???
举例:我有一个短信应用,在收到短信时会弹出一个提示框出来提示给用户,但是如果这时手机系统的锁屏界面起来了,我弹出的提示框就不显示了,要等解开系统锁屏才会看到该弹出的提示框。请问一下大牛们:系统是怎么将自己的锁屏界面置于界面的最顶端而不受其他的提示框盖上来的???
解决方案 »
- android 可以在程序代码中设置style吗?(不是在xml里面设置)
- Eclispe+CDT+NDK如何设置头文件包含目录?
- 同一分辨率,不同密度的widget应该怎么适配呢?
- Android系统进行学习研究
- Spinner控件不可选
- Android函数前面加$符号是什么意思?
- android如何实现绑定手机和邮箱
- MultiAutoCompleteTextView 光标垂直居中
- android 摄像头拍照问题,竖屏拍的照片有时候会转屏?
- abortBroadcast 起作用.我的优先级已经设置1000 为什么还是不能拦截 短信呢
- 上传图片的方式
- 文件从android的sdcard读出时显示乱码问题?郁闷啊
LockScreen.java我已经看过源码,但是在里面没看到其他将该view置于最顶层的代码,是否存在于其他什么地方?
在KeyguardViewManager.show()函数里的代码如下:final int stretch = ViewGroup.LayoutParams.MATCH_PARENT;
int flags = WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN
| WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER
| WindowManager.LayoutParams.FLAG_KEEP_SURFACE_WHILE_ANIMATING
/*| WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
| WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR*/ ;
if (!mNeedsInput) {
flags |= WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
}
WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
stretch, stretch, WindowManager.LayoutParams.TYPE_KEYGUARD,
flags, PixelFormat.TRANSLUCENT);
lp.softInputMode = WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN;
lp.windowAnimations = com.android.internal.R.style.Animation_LockScreen;
lp.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_NOSENSOR;
lp.setTitle("Keyguard");
mWindowLayoutParams = lp;其中的设置的WindowManager.LayoutParams 属性,我照搬过来用,可以没效果,而且整个Activity捕捉不到TouchEvent。
是否我搞错什么地方了?
我现在是想把我自己的Activity一直的置于屏幕的最顶端,防止其他的程序盖在我的这个Activit上,如:有些短信软件,接收到短信时会弹出对话框,我现在就是不想它的这个对话框弹出来。
看一下WindowManagerService,Window有一个叠加顺序的,系统Dialog是优先级最高的。