在程序崩溃的时候 ,捕捉异常
步骤 首先在 activity的oncreat中调用 Thread.setDefaultUncaughtExceptionHandler(new DefaultExceptionHandler( this.getApplicationContext(),crashInterface));
实现一个继承UncaughtExceptionHandler的子类
1 public class DefaultExceptionHandler implements UncaughtExceptionHandler { 2 3 private Context act = null; 4 crashInterface crashInterface; 5 @Override 6 public void uncaughtException(Thread arg0, Throwable arg1) { Intent sIntent=new Intent(act , CrashActivity.class); 27 sIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//必须带上 28 act.startActivity(sIntent); 29 // crashInterface.finsh(); 30 //此处异常 31 return; 32 } 33 34 public DefaultExceptionHandler(Context act,crashInterface crashInterface) { 35 this.crashInterface=crashInterface; 36 this.act = act; 37 } 47 }
在需要捕获异常的activity 中oncreat
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); view= getLayoutInflater().inflate(R.layout.activity_main, null); view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION|View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); setContentView(view); crashInterface crashInterface=new crashInterface() { @Override public void finsh() { // TODO Auto-generated method stub finish(); Process.killProcess(Process.myPid()); } }; Thread.setDefaultUncaughtExceptionHandler(new DefaultExceptionHandler( this.getApplicationContext(),crashInterface)); }
时间: 2024-10-18 07:24:06