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