活动(主题对话框)在其上的来电屏幕阻塞
Posted
技术标签:
【中文标题】活动(主题对话框)在其上的来电屏幕阻塞【英文标题】:Incoming Call Screen obstruction by an Activity (Theme Dialog) over it 【发布时间】:2017-04-14 08:54:18 【问题描述】:我试图在来电屏幕上显示一个活动(带有主题对话框)以显示一些信息。我已经完成了,但问题是每当来电时,活动对话框就会弹出它并覆盖 SLIDER(用于接受/拒绝呼叫)。
我希望在来电屏幕上显示活动对话框,但仍希望用户接听/拒绝来电。
我确实使用过这个但现在无法完成活动(对话框)。
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
热烈的问候
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
setContentView(R.layout.notedialog);
this.setFinishOnTouchOutside(false);
initializeContent();
phone_no = getIntent().getExtras().getString("phone_no");
String note = getIntent().getExtras().getString("note");
tv_client.setText(phone_no + " is calling you");
note_mEditText.setText(note);
dialog_ok.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
MainActivity.this.finish();
// this.setFinishOnTouchOutside(false);
System.exit(0);
);
【问题讨论】:
你能给我看一些代码吗? 请检查问题先生。 @阿舒 啊这是安卓问题,抱歉我不是安卓开发者:) 没关系,先生。顺便说一句。 所以你的 SLIDER 有一个重叠的活动对话框。你想要的是向右移动它的位置? 【参考方案1】:不需要带有对话框样式的 Activity。 仅当您要显示对话框时才调用此方法。 这将在您的手机顶部创建一个对话框。
final Dialog dialog;
public void showDialog()
dialog = new Dialog(this,
android.R.style.Theme_Translucent_NoTitleBar);
// Setting dialogview
Window window = dialog.getWindow();
window.setGravity(Gravity.TOP);
window.setLayout(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
dialog.setTitle(null);
dialog.setContentView(R.layout.notedialog);
dialog.setCancelable(true);
dialog.show();
若要取消对话,请调用此方法。
public void cancelDialog()
if(dialog!= null )
dialog.dismiss()
或
如果你坚持使用Activity对话框,你可以使用这个方法来改变窗口的位置。
@Override
public void onAttachedToWindow()
super.onAttachedToWindow();
View view = getWindow().getDecorView();
WindowManager.LayoutParams lp = (WindowManager.LayoutParams) view.getLayoutParams();
lp.gravity = Gravity.CENTER | Gravity.TOP
lp.x = 10;
lp.y = 10;
lp.width = 300;
lp.height = 300;
getWindowManager().updateViewLayout(view, lp);
【讨论】:
它在 dialog.show();android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
上崩溃以上是关于活动(主题对话框)在其上的来电屏幕阻塞的主要内容,如果未能解决你的问题,请参考以下文章