public static CatchHandler getInstance() {
return mCatchHandler;
}
private static CatchHandler mCatchHandler = new CatchHandler();
private Context mContext;
private DateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd-HH-mm-ss”);
@Override
public void uncaughtException(Thread thread, Throwable ex) {
if (thread.getName().equals(“main”)) {
ToastException(thread, ex);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
}
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(1);
} else {
handleException(thread, ex);
}
}
public void init(Context context) {
mContext = context;
Thread.setDefaultUncaughtExceptionHandler(this);
}
private void ToastException(final Thread thread, final Throwable ex) {
new Thread() {
@Override
public void run() {
Looper.prepare();
StringBuilder builder = new StringBuilder();
builder.append("At thread: ").append(thread.getName())
.append(“\n”);
builder.append(“Exception is :\n”).append(ex.getMessage());
Toast.makeText(mContext, builder.toString(), Toast.LENGTH_LONG)
.show();
Looper.loop();
}
}.start();
}
private void handleException(final Thread thread, final Throwable ex) {
Intent intent =new Intent(“per.xch.test2_35.main”);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
}
}
然后在项目中引用
public class CatchApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
CatchHandler.getInstance().init(getApplicationContext());
}
}
注意
<application
android:name=“.CatchApplication”
最后测试下
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread(new Runnable() {
总结
最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的14套腾讯、字节跳动、阿里、百度等2021最新面试真题解析,我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
究,那么很难做到真正的技术提升。**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!