Я хочу, чтобы диалоговое окно предупреждения отображалось из службы, но оно выдает мне ошибку android.view.WindowManager $ BadTokenException: невозможно добавить окно - нулевой токен для displayid = 0 недействителен;ваша деятельность запущена?
String[] qualityList = getApplicationContext().getResources().getStringArray(R.array.quality_types);
AlertDialog.Builder builder1 = new AlertDialog.Builder(this);
builder1.setTitle("Quality");
builder1.setItems(qualityList, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if(dialog!= null) {
quality = qualityList[which];
}
}
});
builder1.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
int LAYOUT_FLAG;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
LAYOUT_FLAG = WindowManager.LayoutParams.TYPE_APPLICATION_PANEL;
}
else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
LAYOUT_FLAG = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
}
else
{
LAYOUT_FLAG = WindowManager.LayoutParams.TYPE_PHONE;
}
AlertDialog alertDialog = builder1.create();
alertDialog.getWindow().setType(LAYOUT_FLAG);
alertDialog.show();
Я также добавил разрешение в файл манифеста Android