我正在尝试从意图服务
执行此代码 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,虽然我需要触发该功能,因为我的逻辑如下:
但我现在仍然坚持这个错误,任何想法?
答案 0 :(得分:0)
根据https://developer.android.com/training/run-background-service/report-status.html
如果要从IntentService向其他组件发送数据,请使用broadcastManager通过Intent发送捆绑数据,并在组件上启用broadcastReceiver以检索它们。
答案 1 :(得分:0)
只需使用getApplication()。startActivity(Intent.createChooser(intent,“Open folder”));
答案 2 :(得分:0)
您无法从意向服务中打开对话框。要做到这一点,你可以打算开始一个活动,把它放在一个半透明的主题,并显示你的AlertDialog。