您是否使用ConnectivityManager
来监视Monitoring the Connectivity Status?无线网络可用时您可以收到广播事件并恢复/开始上传。
从Android文档:
确定是否有Internet连接
ConnectivityManager cm =
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&
activeNetwork.isConnectedOrConnecting();
确定您的Internet连接类型
boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;
监视器的连接的变化
的ConnectivityManager广播CONNECTIVITY_ACTION ("android.net.conn.CONNECTIVITY_CHANGE")
动作每当连接细节发生了变化。您可以在清单中注册广播接收器来监听这些更改并相应地恢复(或暂停)您的后台更新。
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
设备连接的更改可能非常频繁 - 每次在移动数据和Wi-Fi之间移动时都会触发此广播。因此,仅当您先前暂停更新或下载才能恢复广播时,最好监控此广播。在开始更新之前检查互联网连接通常是足够的,如果没有,则暂停进一步更新,直到连接恢复。
此技巧需要切换您在清单中声明的广播接收器,这将在下一课中介绍。
下面是另一个很好的资源:
http://www.grokkingandroid.com/android-getting-notified-of-connectivity-changes/