国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android 8.0如何完美適配全局dialog懸浮窗彈出

2019-10-21 21:45:33
字體:
來源:轉載
供稿:網友

前言

最近項目targetSdkVersion升級到了26,出現很多問題趟了很多坑,其中就包括本篇的需要解決的問題:全局dialog 不顯示。

出現場景

有時候我們需要在App中彈dialog,但是卻不知道依附的是哪個Activity,這個時候通常會啟動一個service來依附,顯示一個全局的dialog。

Android 6.0出現的懸浮窗權限

為什么從6.0說起?

在Android6.0之后,使用懸浮窗功能需要申請開啟懸浮窗權限,在API23以下版本編譯,懸浮窗權限關閉的,但是沒有權限限制,在大于23版本編譯,這個權限默認是關閉的,需要獲取權限。而且每次使用的時候都要檢測并獲取權限,因為這個權限可以手動關閉。

在6.0之前就有的權限,默認在清單文件中注冊:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

此權限在6.0之后不能彈出全局彈框。

6.0之后判斷是否有懸浮窗權限,沒有則申請權限

<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW"/>
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {  if (Settings.canDrawOverlays(MainActivity.this)) {   Intent intent = new Intent(MainActivity.this, MainService.class);   startService(intent);   finish();  } else {   //若沒有權限,提示獲取.   Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);   Toast.makeText(MainActivity.this,"需要取得權限以使用懸浮窗",Toast.LENGTH_SHORT).show();   startActivity(intent);  }  }else { //SDK在23以下,不用管. Intent intent = new Intent(MainActivity.this, MainService.class); startService(intent); finish();}

Android 8.0對懸浮窗彈框優化

Android8.0 修訂記錄中的內容:

Android,完美適配,dialog,懸浮窗
Android8.0懸浮窗權限加強.png

主要代碼

 //8.0系統加強后臺管理,禁止在其他應用和窗口彈提醒彈窗,如果要彈,必須使用TYPE_APPLICATION_OVERLAYif (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { dialog.getWindow().setType((WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY));}else { dialog.getWindow().setType((WindowManager.LayoutParams.TYPE_SYSTEM_ALERT));}dialog.show();

注意一點,這個在全局dialog顯示中才會出現,也就是說沒有具體的Activity依附,再者,顯示的dialog也需要加入theme,不然會報錯。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安徽省| 乐清市| 马尔康县| 山东| 丰城市| 大荔县| 白城市| 清原| 枣庄市| 甘肃省| 九江县| 沭阳县| 万宁市| 益阳市| 邯郸县| 博野县| 临汾市| 延长县| 上思县| 麻栗坡县| 油尖旺区| 会东县| 锡林浩特市| 方山县| 闽侯县| 武夷山市| 喀喇沁旗| 遂宁市| 桃园市| 东台市| 中牟县| 和静县| 维西| 固原市| 定边县| 习水县| 新巴尔虎右旗| 文山县| 乐清市| 潜山县| 岳池县|