我正在开发一个
Android聊天应用程序.启动时,应用程序启动服务.该服务连接到聊天服务器.如果由于某种原因连接断开,用户可以单击按钮并调用reconnect()函数.
该应用程序在移动设备上运行.该应用程序通过Wi-Fi连接到Internet.如果使用手机行走的用户离开Wi-Fi覆盖区域,则连接断开.我希望我的应用程序在这种情况下自动尝试重新连接到Internet.在您看来,最好的方法是什么?
解决方法
添加到清单:
- ...
- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
- <uses-permission android:name="android.permission.INTERNET"> </uses-permission>
- ...
- <receiver android:name=".Internet" android:enabled="true">
- <intent-filter>
- <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
- </intent-filter>
- </receiver>
- ...
接收器:
- package YourPackage;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- public class Internet extends BroadcastReceiver
- {
- @Override
- public void onReceive(final Context context,Intent intent)
- {
- if (intent.getAction().equalsIgnoreCase("android.net.conn.CONNECTIVITY_CHANGE"))
- {
- if isInternet(context)
- {
- // Your Code
- }
- }
- }
- public boolean isInternet(Context context)
- {
- ConnectivityManager IM = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
- NetworkInfo activeNetworkInfo = IM.getActiveNetworkInfo();
- return activeNetworkInfo != null;
- }
- }