pan*_*wal 6 android gprs wifi android-networking
我使用DefaultHttpClient和HttpGet来轮询来自服务器的数据.现在,假设用户在Wi-Fi网络中并离开了房间.因此手机会自动开始使用3G网络.是否有任何此类更改的回调,以及我应该如何处理此类更改.我应该再次开始轮询还是操作系统会注意适当地进行更改
rob*_*bsf 17
您可以在清单中设置Receiver:
<receiver
android:name=".NetworkChangeReceiver"
android:label="NetworkChangeReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
并使用以下内容实现Receiver:
public class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
final ConnectivityManager connMgr = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo wifi =
connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
final android.net.NetworkInfo mobile =
connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifi.isAvailable()) {
//Do something
if (mobile.isAvailable()) {
//Do something else
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果您保持持久连接,它将会关闭,您必须重新建立连接.
如果您正在安排服务并且没有保持连接持久,那么您将不会遇到问题.
| 归档时间: |
|
| 查看次数: |
9995 次 |
| 最近记录: |