
ANR异常
一、简介
解决方法:别在主线程中写非常耗时的操作
二、代码实例
点击之后,不停点击,乱点
出现anr异常
代码
/anr/src/anr/MainActivity.java
package anr; import com.example.anr.R; import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class MainActivity extends Activity{
private Button btn_openActivty;//创建一个button对象
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);//父类操作
setContentView(R.layout.activity_main);//引入名为activity_main的界面
btn_openActivty=(Button) findViewById(R.id.btn_openActivity);//找id为btn_openActivity的button
/*
25 * 在主线程(UI线程)执行耗时的操作;
26 * 界面无法响应输入事件了,
27 * 就会发生ANR异常(大于6秒的行为)
*/
btn_openActivty.setOnClickListener(new OnClickListener() {//设置button点击监听 @Override
public void onClick(View v) {//onclick事件
// TODO Auto-generated method stub
34 try {
35 Thread.sleep(6000);
36 } catch (Exception e) {
37 // TODO: handle exception
38 e.printStackTrace();
39 }
Intent intent=new Intent();//初始化intent
intent.setClass(MainActivity.this,Activity01.class);//连接
startActivity(intent);//打开activity
}
});
}
}
解决方法:别在主线程中写非常耗时的操作