Android初学------程序发生异常重启demo
2015-06-23 15:56
381 查看
<pre name="code" class="java">public class CrashHandler implements UncaughtExceptionHandler { private static CrashHandler mCrashHandler =new CrashHandler(); private Thread.UncaughtExceptionHandler mDefaultHandler; private Context mContext; private PendingIntent intent; @Override public void uncaughtException(Thread thread, Throwable ex) { // TODO Auto-generated method stub Log.i("TTT","发生异常了呢。。。。。。。。。。。。。。。。。。"); sendHandler(); } private void sendHandler() { // TODO Auto-generated method stub intent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, MainActivity.class),Intent.FLAG_ACTIVITY_NEW_TASK); AlarmManager mgr = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE); mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 2000, intent); System.exit(2); } private CrashHandler() { // TODO Auto-generated constructor stub } public static CrashHandler getInstance(){ return mCrashHandler; } public void init(Context context){ mContext=context; mDefaultHandler=Thread.getDefaultUncaughtExceptionHandler(); Thread.setDefaultUncaughtExceptionHandler(this); } }
异常处理类 -------------------------- ↑
注册异常处理类 ↓
public class MyApplication extends Application { @Override public void onCreate() { // TODO Auto-generated method stub super.onCreate(); CrashHandler crashHandler=CrashHandler.getInstance(); crashHandler.init(getApplicationContext()); } }
人为制造异常
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.i("TTT","onCreatele了呢。。。。。。。。。。。。。。。。。。"); findViewById(R.id.btn).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub System.out.println(a.equals("123")); } }); }
log输出
01-02 02:11:55.980: I/TTT(16359): 发生异常了呢。。。。。。。。。。。。。。。。。。 01-02 02:11:58.200: I/TTT(16682): onCreatele了呢。。。。。。。。。。。。。。。。。。 01-02 02:12:44.110: I/TTT(16682): 发生异常了呢。。。。。。。。。。。。。。。。。。 01-02 02:12:46.280: I/TTT(17586): onCreatele了呢。。。。。。。。。。。。。。。。。。
此demo为简易版,需要实现自身逻辑在uncaughtException方法中处理。。。。。比如保存错误日志之类的,,,
相关文章推荐
- Android之WebRTC介绍
- 【Android疑难杂症】GridView动态设置Item的宽高导致第一个Item不响应或显示不正常的问题
- Android Studio如何发布APK
- Android事件分发笔记
- Android学习_18_使用事务操作SQLite数据库
- android dialog圆角显示及解决出现的黑色棱角
- Android listView判断上滑还是下滑
- Android 5.1 Gallery2 模块编译不过解决办法
- Android Studio 常见问题
- Android Bundle类别
- d: Invalid content was found starting with element 'd:skin'. No child element is expected at this po
- android4.4中addjavascriptinterface失效的解决办法
- Android Tombstone/Crash的log分析和定位
- 使用asm.jar将Android手机屏幕投影到电脑
- Android抓包方法
- Android 软键盘
- Android: 如何手工生成R.java文件?
- Android详细解释键盘和鼠标事件
- Android Studio 简单设置
- android系统中捕获鼠标事件