当没有互联网访问android时显示吐司

时间:2015-11-07 16:04:54

标签: android android-toast

如何让这段代码永远在后台运行,并始终检测是否有互联网访问(不是互联网连接)并在没有互联网访问时显示吐司?

here is我想要什么(请参阅meow meo的答案),但它是用于检测互联网

// check connectivity (Internet access)
    private boolean checkConnectivity() {
        System.out.println("executeCommand");
        Runtime runtime = Runtime.getRuntime();
        try {
            Process mIpAddrProcess = runtime
                    .exec("/system/bin/ping -c 1 8.8.8.8");
            int mExitValue = mIpAddrProcess.waitFor();
            System.out.println(" mExitValue " + mExitValue);
            if (mExitValue == 0) {
                img_c1.setImageResource(R.drawable.index2);
                return true;
            } else {
                img_c2.setImageResource(R.drawable.index2);
                return false;
            }
        } catch (InterruptedException ignore) {
            ignore.printStackTrace();
            System.out.println(" Exception:" + ignore);
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println(" Exception:" + e);
        }
        return false;
    }

1 个答案:

答案 0 :(得分:2)

  

首先,在后台永远运行此代码是个坏主意。

而是使用BroadCastReceiver来检查网络状态,因此它只会在网络状态发生变化时生效,

您必须为网络状态更改事件注册BroadcastReceiver。因此,当网络安卓事件的设备发生任何变化时,您的BroadcastReceiver将监听该事件并基于此显示Toast。

好的教程:http://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html

http://www.grokkingandroid.com/android-getting-notified-of-connectivity-changes/