永发信息网

android访问网络状态是否可在主线程中执行

答案:3  悬赏:30  手机版
解决时间 2021-12-22 20:38
  • 提问者网友:愿为果
  • 2021-12-22 09:58
在Android4.0中,访问网络的方法不能在主线程中执行,否则5S会强制关闭。

那么,访问网络状态是否可在主线程中执行呢?
最佳答案
  • 五星知识达人网友:野味小生
  • 2022-01-06 00:40
是的,android2.2版本以下是可以在主线程中执行网络访问的,2.2以上就得重起一个线程了。
全部回答
  • 1楼网友:山君与见山
  • 2022-01-06 02:05
一个android 程序默认情况只有一个进程,但是一个进程可以有多个线程。其中有一个ui 线程也称为ui主线程,ui thread在android程序运行的时候就被创建,主要是负责控制ui界面的显示、更新和控件交互。所有的android应用程序组件----包括activity、service、broadcast receiver都在应用程序的主线程中运行。因此,任何组件中的费时操作处理都可能阻塞所有其他的组件、包括service和可见的activity。   在android 中,对未响应的定义是:activity对一个输入事件在5s内没有响应,或者broadcast receiver在10s内没有完成他的onreceive处理程序。对于任何不用直接和用户界面进行交互的重要处理,使用后台线程技术处理是非常重要的,将文件操作、网络交互、数据库、复杂计算调度到后台线程中完成非常重要,以免阻塞主线程。 方法一:thread+handler 开启一个新线程:new thread(new mythread()).start(); //通过handler物件,通知主线程ui thread来更新界面 handler myhandler=new handler(){ //此方法主要用于更新ui public void handlemessage(message msg){ switch(msg.what){ //根据thread返回的标识进行相应的处理 } } }; class mythread implements runnable{ public void run(){ int what=0; //将耗时操作放到这里处理 //to-do
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯