我知道如何在活动中检查互联网是否可用,我的要求是,实际上当设备处于离线状态(无互联网)时,我在数据库中存储了一些值,当涉及到在线时必须传递数据库值没有用户交互性的服务器。我怎样才能做到这一点。 我得到了这个例子How to check the Internet Connection periodically in whole application?,但它仅适用于一个活动,如何使其成为全局活动。
答案 0 :(得分:7)
在接收器中使用此功能
<receiver android:name=".UpdateReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
您的UpdateRecieiver
public class UpdateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectivityManager = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE );
NetworkInfo activeNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
boolean isConnected = activeNetInfo != null && activeNetInfo.isConnectedOrConnecting();
if (isConnected)
Log.i("NET", "connecte" +isConnected);
else Log.i("NET", "not connecte" +isConnected);
}
}
答案 1 :(得分:0)
试试这个功能
public static boolean isInternetAvailable(Context context) {
ConnectivityManager cm =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
return true;
}
return false;
}
并在清单中
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
享受..
答案 2 :(得分:0)
你需要在你的应用中实现服务的概念。此服务将在后台运行,并根据需要将数据传递给服务器 请查看此链接以获取参考http://developer.android.com/guide/topics/fundamentals/services.html