如果服务失败,如何显示ErrorDialog

时间:2014-05-29 10:02:50

标签: android service

我有一个用于获取网站的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。

3 个答案:

答案 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消息