我正在开发一个Android聊天应用程序。在启动时,应用程序启动服务。该服务连接到聊天服务器。如果由于某种原因连接断开,用户可以单击一个按钮,然后调用reconnect()函数。

该应用程序在移动设备上运行。该应用程序通过Wi-Fi连接到Internet。如果用户和他的手机一起走过Wi-Fi覆盖区域,则连接断开。在这种情况下,我希望我的应用程序自动尝试重新连接到Internet。您认为最好的方法是什么?

最佳答案

添加到 list :

...
<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;
        }
    }

10-07 19:45
查看更多