android service弹出全局对话框

private void showAlertDialog() {
View alarmDialogView = View.inflate(context, R.layout.dialog_alarm, null);
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setView(alarmDialogView);
alarmDialog = builder.create();
alarmDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
alarmDialog.show();
Button sureBtn = (Button) alarmDialogView.findViewById(R.id.dialog_alarm_sure_btn);
sureBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
alarmDialog.dismiss();
}
});
}





Service在服务里面开启线程连接网路,在线程里面不可以弹对话框,解决方法,用handler发消息到主线程里面。在主线程里面调用此方法
要记住添加权限



话说,这样设置TYPE_SYSTEM_ALERT,这个可以获取焦点,点击任意地方都会dismiss掉dialog,如果设置成TYPE_SYSTEM_DIALOG的话,我运行起来就会报错,所以暂时成为一个bug吧

你可能感兴趣的:(android service弹出全局对话框)