See:
if (Build.VERSION.SDK_INT >= 27) {
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY);
} else {
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);
}
Above code is not crashing my app, but there is no effect for my Oreo 27 8.0.1 version.
See method in my Non-Activity class:
private void showAlertDialog(final Context context) {
DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "test", Toast.LENGTH_SHORT).show();
}
};
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
AlertDialog.Builder builder = new AlertDialog.Builder(context)
.setCancelable(false)
.setPositiveButton("OK", listener);
View view = inflater
.inflate(R.layout.row_passcode_dialog, null);
builder.setView(view);
Dialog dialog = builder.create();
if (Build.VERSION.SDK_INT >= 27) {
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY);
} else {
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);
}
dialog.show();
}
Also check: Permission error is still showing even when added permission in manifest