我有一个用于获取网站的DownloadService,以便更新一些应用数据。
这就是我在Activity中调用服务的方式:
Intent intent = new Intent(context, DownloadService.class );
intent.putExtra(this.EXTRA_DOWNLOAD_URL, url);
intent.putExtra(DownloadService.EXTRA_DOWNLOAD_RECEIVER, new DownloadReceiver());
this.startService(intent);
但是,下载失败可能会导致服务通知DownloadReceiver。
(DownloadReceiver
扩展ResultReceiver
,并获取包含状态的Bundle,下载的html和 - 如果出现错误 - 错误消息)
如果发生这种情况,如何显示ErrorDialog? resultReceiver无法访问Context。
答案 0 :(得分:1)
您无法从服务或接收器显示对话框。但是您可以在通知栏中显示错误消息,或者可以显示包含错误的Toast。
答案 1 :(得分:0)
您可以在主要活动中创建处理程序。将此处理程序传递给您的Downloadreceiver,其中如果发生任何错误,您可以向主活动发送消息,您可以使用AlertDialog / Fragment显示警报,即在handleMessage()中检查消息并显示警报。
答案 2 :(得分:0)
if (url == null) {
Toast.makeText(getApplicationContext(),
"Sorry! unable to download", Toast.LENGTH_SHORT).show();
}
您可以使用此类别的内容来显示Toast消息