0

我做了一个应用程序,它使用 webview 来收听来自互联网的音频。现在,我添加了一个方法 (isOnline) 来检查是否存在(或不存在)互联网活动。我有一个疑问:我可以使用始终在 OnCreate 中运行的这种方法吗?

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

1 回答 1

1

如果您阻止 onCreate() 的执行,也就是 UI 线程将被阻止,您的应用程序将抛出 ANR(应用程序无响应)异常。

但是您的方法并没有告诉您您已连接到实习生,它只是告诉您您的设备已连接或连接到最近的路由器。之后是什么你不知道。

要检查真实的互联网连接,您需要向服务器发出请求,例如 www.google.com,如果您得到答案,那么您就可以实时连接。

还有一件事,你不需要持续监控你的连接。以最简单的方式,您可以不时在后台线程中执行此操作,但前提是您无法从收音机播放器获取事件。

于 2013-01-24T16:10:10.397 回答