我正在开发Android聊天应用程序。启动时,应用程序启动服务。该服务连接到聊天服务器。如果由于某种原因连接断开,用户可以单击按钮并调用reconnect()函数。
该应用程序在移动设备上运行。该应用程序通过Wi-Fi连接到Internet。如果使用手机行走的用户离开Wi-Fi覆盖区域,则连接断开。我希望我的应用程序在这种情况下自动尝试重新连接到Internet。在您看来,最好的方法是什么?
答案 0 :(得分:6)
添加到清单:
...
<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;
}
}