0

使用这种方法,我知道用户何时连接。

public boolean isOnline() {
    ConnectivityManager cm = 
         (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnected()) {
        return true;
    }
    return false;
}

在我的应用程序中,当用户按下发送时,它会将一些数据上传到服务器,如果没有连接,它会说“我们稍后会尝试发送”,但是我如何检查互联网状态并且只有在连接开启时,发送信息?

4

3 回答 3

0

首先,使用 anIntentService来处理您所有的数据上传。让它检查与您拥有的方法的连接 - 如果连接,则上传数据,否则将其存储(使用SharedPreferences或数据库)。

其次创建一个BroadcastReceiver并在清单中使用以下内容注册它<intent-filter>......

<intent-filter>
    <action android:name="android.net.wifi.STATE_CHANGE" />
    <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />"
</intent-filter>

注意:您将需要以下权限...

<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

在它的onReceive(...)方法中BroadcastReceiver检查是否有任何数据未决,如果有,让它开始IntentService发送数据。

此外,使用Notifications由创建的IntentService向用户提供反馈。

于 2013-02-14T18:59:38.727 回答
0

当没有检测到互联网连接时,为什么不提醒用户在他们连接时将发送消息。运行后台进程或服务,定期检查用户是否已连接,以及何时运行发送数据的方法。

于 2013-02-14T18:45:01.607 回答
0

这应该有帮助:http ://www.androidhive.info/2012/07/android-detect-internet-connection-status/

如果你想要一个额外的例子:http ://www.androidsnippets.com/have-internet

第一个链接中的站点(AndroidHive.info)是新手最好的朋友。所有的 tuts 都提供了可下载的源代码,几乎是万无一失的,并且编写/记录得很好。您可以做很多事情,只需将他的 tuts 中的不同部分拼凑成独特的东西。学习imo的最佳方式

于 2013-02-14T18:48:08.050 回答