4

我的应用程序从网络下载数据并将其显示给用户。为了防止由于没有互联网连接导致的应用程序崩溃,我实现了在开始下载之前检查是否有一个功能。我不知道如何处理下载过程中连接断开的情况(在 AsyncTask 中)。Catching Exepctions 在我的情况下不起作用:(如果有任何想法或教程链接,请与它分享。提前致谢

4

2 回答 2

2

希望这会有所帮助。无论您执行下载的任何活动都应该创建一个可以处理连接状态通知的 BroadcastReceiver。然后您将收到连接已断开的通知,并且可以更优雅地处理它......就像等待连接恢复的通知并重新开始下载:

private BroadcastReceiver mConnReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        boolean missingConnection = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
        String reason = intent.getStringExtra(ConnectivityManager.EXTRA_REASON);

        // do whatever you need to based on current network state
    }

这个页面也有很好的信息:http: //thiranjith.com/2011/03/31/how-to-monitor-network-connectivity-in-android/

于 2013-04-02T19:54:10.410 回答
0

AsyncTask您可以在另一个线程之外或在另一个线程中定期检查连接断开。然后,如果连接断开,您可以通过调用取消 AsyncTask cancel()

于 2013-04-02T19:52:05.370 回答