我做了一个应用程序,它使用webview来收听互联网上的音频。现在,我添加了一个方法(isOnline)来检查是否存在(或不存在) internet活动。我有一个疑问:我可以一直在OnCreate中使用这个方法吗?
public boolean isOnline() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
return true;
}
return false;发布于 2013-01-25 00:10:10
如果你阻塞了onCreate() (也就是UI线程)的执行,那么UI线程就会被阻塞,你的应用程序就会抛出一个R(应用程序没有响应)异常。
然而,你的方法并没有告诉你你已经连接到互联网,它只是告诉你你的设备isConnectedOrConnecting到最近的路由器。你不知道那之后会发生什么。
为了检查真实的互联网连接,你需要向服务器发出请求,比如www.google.com,如果你得到了答案,那么你就已经连接成功了。
还有一件事,你不需要持续监控你的连接。以最简单的方式,您可以不时地在后台线程中执行此操作,但前提是您无法从您的无线电播放器获取事件。
https://stackoverflow.com/questions/14505563
复制相似问题