简体   繁体   English

android-在锁定屏幕上显示对话框样式的活动而不进行解锁

[英]android - show Dialog styled activity over locked screen without unlocking

I am showing a popup screen when the screen is locked when some event happens. 当某个事件发生时屏幕被锁定时,我正在显示一个弹出屏幕。

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

Problem is - after a lot of frustration I found this answer , saying that this doesn't work when the activity is using a Theme.Dialog . 问题是-经过很多挫败之后,我找到了这个答案 ,说当activity使用Theme.Dialog时,此方法Theme.Dialog

I want my activity to not be full screen, its suppose to be more or less like a sms popup notification. 我希望我的活动不是全屏显示,它或多或少像是短信弹出通知。 how can I do that without the Theme.Dialog Theme? 没有Theme.Dialog主题怎么办?

Not sure if this is what you're looking for, but this wraped everything in the window that pops up for me: 不知道这是否是您要查找的内容,但这将所有内容包装在弹出的窗口中:

Key part of code is 'WRAP_CONTENT': 代码的关键部分是“ WRAP_CONTENT”:

    WindowManager mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
    View mView = View.inflate(getApplicationContext(), R.layout.dialogue_page, null);
    WindowManager.LayoutParams mLayoutParams = new WindowManager.LayoutParams(
            ViewGroup.LayoutParams.WRAP_CONTENT,
            ViewGroup.LayoutParams.WRAP_CONTENT, 0, 0,
            WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
            WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                    | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
                    | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
                    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
            PixelFormat.RGBA_8888);
    mWindowManager.addView(mView, mLayoutParams);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM