当安全锁启动时,对话框活动隐藏在调用屏幕下,android

时间:2016-06-21 15:47:05

标签: android dialog popupwindow lockscreen

我正在使用类似于truecaller的应用程序,并希望在本机调用屏幕上实现弹出活动。没问题,但是当设备锁定在防护装置活动上时显示,但是立即隐藏在电话屏幕下。这是我的代码:

public class IcomingCallActivity extends Activity {

    WindowManager.LayoutParams wlp;
    private int scrennHeight;
    @Bind(R.id.phoneTextView) TextView phoneTextView;
    @Bind(R.id.nameTextView) TextView nameTextView;
    @Bind(R.id.avatarImageView) CircleImageView avatarImageView;
    @Bind(R.id.spamTextView) TextView spamTextView;
    @Bind(R.id.container) FrameLayout container;

    private ActivityManager mActivityManager;
    private boolean mDismissed = false;

    private static final int MSG_ID_CHECK_TOP_ACTIVITY = 1;
    private static final long DELAY_INTERVAL = 100;

    private String number;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON);
        setContentView(R.layout.activity_incoming_call);


        ButterKnife.bind(this);

        scrennHeight = getDisplayHeight();
        initiallizeScreen();

        final View view = getWindow().getDecorView().findViewById(R.id.container);


        view.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) v.getLayoutParams();

                switch (event.getAction()) {
                    case MotionEvent.ACTION_MOVE:
                        lp.topMargin = (int) event.getRawY();
                        wlp = getWindow().getAttributes();
                        wlp.y = lp.topMargin - scrennHeight / 2;
                        getWindow().setAttributes(wlp);
                        break;
                    case MotionEvent.ACTION_UP:
                        SharedPreferencesSaver.get().saveCallDialogPosition((int) event.getRawY());
                        break;
                }
                return true;
            }
        });
} 

活动风格是Dialog,但当我尝试将其设置为全屏窗口时,黑色背景和原生callcreen不可见

0 个答案:

没有答案