在Android Service中弹出系统全屏对话框
16lz
2021-01-23
最终的效果图
布局文件就不贴了,这里只写出关键的代码。
1、自定义对话框
Window window = mAlertDialog.getWindow();
//关键代码,设置成ALERT,这样点击back键也无法让对话框消失window.setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);mAlertDialog.show();
//以下代码看需求添加,要在show之后调用,被对话框遮挡的半透明区域window.setBackgroundDrawableResource(android.R.color.transparent);WindowManager.LayoutParams layoutParams = window.getAttributes();layoutParams.gravity=Gravity.TOP;layoutParams.width= WindowManager.LayoutParams.MATCH_PARENT;layoutParams.height= WindowManager.LayoutParams.MATCH_PARENT;window.getDecorView().setPadding(0, 0, 0, 0);window.setAttributes(layoutParams);window.setContentView(R.layout.xxxxx);
2、在Service中使用
如果要在service使用,直接调用即可,如果是在service的线程中显示对话框,因为自行创建的线程没有Looper,因此需要添加代码如下:
//线程池回调回来的,没有looper会显示不了界面Looper.prepare();popupUpgradeTips();Looper.loop();
更多相关文章
- Android_判断文件是否存在并创建代码
- Android / iOS 静态代码扫描工具调研
- android 多线程 AsyncTask handler
- Android 内部API (android.internal)和隐藏代码(@hide)概述
- IPC与Binder,Binder线程池,AIDL demo - Android
- Android控制手电筒代码,简单易用,不需要任何权限