android.os.NetworkOnMainThreadException异常原因
2015-06-10 16:46
751 查看
写了个socket测试程序,程序没有错,但atvitity却莫名其妙的老是崩溃,查找半天原来是以下问题,特此记录一下。
android.os.NetworkOnMainThreadException是指在主线程中访问网络,但android3.0版本开始就强制程序不能在主线程中访问网络,防止发生阻塞,所以要把访问网络放在独立的线程中。
在开发中,为了防止访问网络阻塞主线程,一般都要把访问网络放在独立线程中或者异步线程AsyncTask中。
1、想要忽略这些强制策略问题的话,可以在onCreate()方法里面加上
并在公共类上面加上@SuppressLint("NewApi"),就OK,测试时可以这样写,一般不建议这样写。
例如:
@SuppressLint("NewApi")
//
public class MainActivity extends Activity {
EditText editText;
Button sendButton;
TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
editText = (EditText)findViewById(R.id.editText);
sendButton = (Button)findViewById(R.id.sendButton);
tv = (TextView)findViewById(R.id.tv);
...
android.os.NetworkOnMainThreadException是指在主线程中访问网络,但android3.0版本开始就强制程序不能在主线程中访问网络,防止发生阻塞,所以要把访问网络放在独立的线程中。
在开发中,为了防止访问网络阻塞主线程,一般都要把访问网络放在独立线程中或者异步线程AsyncTask中。
1、想要忽略这些强制策略问题的话,可以在onCreate()方法里面加上
StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy);
并在公共类上面加上@SuppressLint("NewApi"),就OK,测试时可以这样写,一般不建议这样写。
例如:
@SuppressLint("NewApi")
//
public class MainActivity extends Activity {
EditText editText;
Button sendButton;
TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
editText = (EditText)findViewById(R.id.editText);
sendButton = (Button)findViewById(R.id.sendButton);
tv = (TextView)findViewById(R.id.tv);
...
相关文章推荐
- Android-->RecyclerView的上手教程(模仿画廊效果)
- Android基础教程(六)之----多选项CheckBox的综合应用
- Android Drawable 那些不为人知的高效用法
- Android基础教程(五)之-----Menu功能菜单设计
- android退出整个应用程序
- Android中的“再按一次返回键退出程序”de实现
- Android基础教程(四)之-----取得手机屏幕大小DisplayMetrics的应用
- Android 下拉刷新框架实现
- Android基础教程(三)之-----简单的Button事件响应综合提示控件Toast的应用
- 将Eclipse代码导入到Android Studio的两种方式
- Android基础教程(二)之五大布局对象---FrameLayout,LinearLayout ,AbsoluteLayout,RelativeLayout,TableLayout.
- android多个fragment返回键层层返回
- 打Android渠道包简易脚本
- android fragment页面切换GridView数据不能刷新的问题
- Android--第二天(项目安装启动,电话拨号器,用户通知,短信发送器,数据存储与访问)
- Android Volley完全解析
- android上传图片至服务器
- Android & iOS设计尺寸规范
- Android 属性动画(Property Animation) 完全解析 (上)
- android开发问题记录0610