我有一个从服务器下载文件的服务。在下载开始之前,我告诫用户仅通过无线局域网下载文件。
我的问题是,如果我失去网络连接,我的下载会卡住。是否有一种方法可以监听网络连接的变化或完全丢失?
我有一个从服务器下载文件的服务。在下载开始之前,我告诫用户仅通过无线局域网下载文件。
我的问题是,如果我失去网络连接,我的下载会卡住。是否有一种方法可以监听网络连接的变化或完全丢失?
这段代码看起来像是个不错的样例代码。以下是其中一段片段:
BroadcastReceiver networkStateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.w("Network Listener", "Network Type Changed");
}
};
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(networkStateReceiver, filter);
startListening()
和stopListnening()
方法本身是同步的,但它们彼此之间不是同步的。如果有两个线程独立地调用这些函数,那么可能会出现竞争条件。您需要添加一个锁对象,并从两个方法都进行同步处理。 - racs