当我尝试显示我的IP USIG INET时,为什么我的应用程序会崩溃



我正在尝试使用INET显示我的IP地址,但是当我这样做时,应用程序崩溃了。我是否需要添加任何权限,以免发生这种情况?以下是我的代码

try {
            Inet4Address ip= (Inet4Address) Inet4Address.getLocalHost();
            String s=ip.toString();
            TextView text= (TextView)findViewById(R.id.txt);
            text.setText(s);
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }

Android不允许您在主线程中直接运行与网络相关的工作,因此您会得到此例外:

android.os.NetworkOnMainThreadException 

这样运行代码:

Thread thread = new Thread(){
        public void run(){
            try {
                Inet4Address ip= (Inet4Address) Inet4Address.getLocalHost();
                String s=ip.toString();
             TextView text= (TextView)findViewById(R.id.txt);
              text.setText(s);
                Log.e("my ip=> ",s+" <<");
            } catch (UnknownHostException e) {
                e.printStackTrace();
            }
        }
    };
    thread.start();

它只是运行您代码另一个线程...

最新更新