1. 程式人生 > >android 6.0 7.0 8.0 在Service中彈出對話方塊適配

android 6.0 7.0 8.0 在Service中彈出對話方塊適配

在網上找了很多文章大家都再說8.0的懸浮窗許可權不開想要彈出對話方塊就要使用
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY
然而我的在華為8.0 p10手機上沒有任何反應
最終解決的辦法是 
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY-1
完整程式碼如下:
TYPE_SYSTEM_ALERT :在有些手機上不行,比如三星,努比亞的,所以使用:TYPE_TOAST
    AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getApplicationContext(), AlertDialog.THEME_DEVICE_DEFAULT_LIGHT
); dialogBuilder.setTitle("提示"); dialogBuilder.setMessage("xxxxxxxxxxxxx"); dialogBuilder.setCancelable(false); dialogBuilder.setNegativeButton("退出登入", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); dialogBuilder.setPositiveButton("
重新登入", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); AlertDialog alertDialog = dialogBuilder.create(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {//8.0新特性 alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY
- 1); } else { alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST); } alertDialog.show();