我试图检查我的 SherlockFragment 中的网络连接,但无法识别 getSystemService() 方法。
下面是我的代码(来自http://developer.android.com/training/basics/network-ops/connecting.html)
ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
// fetch data
} else {
// display error
}
提前致谢
最佳答案
方法getSystemService()
没有定义在fragments上,所以首先使用getActivity()
获取activity,例如:
ConnectivityManager connMgr = (ConnectivityManager) getActivity()
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
// fetch data
} else {
// display error
}
p.s:附加说明:如果 fragment 在未附加到任何 Activity 的情况下运行存在潜在风险,请检查 getActivity()
首先返回 null
。
干杯!
关于android - 检查 fragment 中的网络连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16481334/