如何处理互联网连接丢失?

时间:2013-04-02 19:37:15

标签: android android-asynctask

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

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分:0)

您可以定期检查AsyncTask之外或其他线程中的连接丢弃。然后,如果连接断开,您可以通过调用cancel()来取消AsyncTask。