Я пытаюсь выполнить этот код из умысел службыоткрыть умысел внутри Намерение службы
public void showAlertDialog(String title, CharSequence message) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
if (title != null) builder.setTitle(title);
builder.setMessage(message);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//Helper.OpenFile(sharing_download.this,DownloadedFilePath + "test.pdf");
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.parse(DownloadFolderPath);
intent.setDataAndType(uri, "*/*");
startActivity(Intent.createChooser(intent, "Open folder"));
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
return;
}
});
builder.show();
}
Хотя я получаю следующее сообщение об ошибке:
Unable to add window -- token null is not for an application
Я понимаю, что причина потому что мы не можем открыть Activity из службы намерения, хотя мне нужно вызвать эту функцию, так как моя логика заключается в следующем:
- Пользователя скачать файл
- файл скачанного путем вызова Намерения службы
- когда конец файла загрузке и окончанию службы, мне нужно, чтобы вызвать эту функцию и обновить вид списка файлов
Но я Я застрял с этой ошибкой, любая идея?
Да, вы можете начать «Активность» из «IntentService», хотя обычно это невежливо. Ваш код предназначен для 'AlertDialog', а не' Activity', и вы не можете показать «AlertDialog» из «IntentService». – CommonsWare
Я хочу спросить пользователя, хочет ли он перейти к папке загрузки, что мне делать? кроме создания активности и ввода двух кнопок и вызова этой активности – Sora
Я бы поднял «Уведомление», которое ведет к активности (или имеет два действия, соответствующие вашим двум кнопкам). Вы не знаете, что делает пользователь на переднем плане, когда ваш «IntentService» добирается до этого момента. – CommonsWare