手表开发中的CrashHandler
来源:互联网 发布:弹簧刀 知乎 编辑:程序博客网 时间:2024/06/11 20:45
package com.netease.mobimail;import android.app.ActivityManager;import android.app.ActivityManager.RunningTaskInfo;import android.app.Application;import android.content.ComponentName;import android.content.Context;import com.netease.mobimail.activity.BaseActivity;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Map.Entry;import java.util.Set;import java.util.concurrent.ConcurrentHashMap;public class WearMailApplication extends Application{ public static BaseActivity msCurrentActivity; private static Map<String, BaseActivity> sActivityMap = new ConcurrentHashMap(); public static void addActivity(BaseActivity paramBaseActivity) { sActivityMap.put(paramBaseActivity.getClass().getName(), paramBaseActivity); } public static void clearAll() { try { Iterator localIterator = sActivityMap.entrySet().iterator(); while (localIterator.hasNext()) { BaseActivity localBaseActivity = (BaseActivity)((Map.Entry)localIterator.next()).getValue(); localIterator.remove(); if ((localBaseActivity != null) && (!localBaseActivity.isFinishing())) { localBaseActivity.finish(); } } } finally {} } public static BaseActivity getActivityByClass(Class<?> paramClass) { return (BaseActivity)sActivityMap.get(paramClass.getName()); } public static BaseActivity getCurrentActivity() { return msCurrentActivity; } public static boolean isAppInForeground(Context paramContext) { try { List localList = ((ActivityManager)paramContext.getSystemService("activity")).getRunningTasks(1); if (localList.isEmpty()) { return false; } boolean bool2 = ((ActivityManager.RunningTaskInfo)localList.get(0)).topActivity.getPackageName().equalsIgnoreCase(paramContext.getPackageName()); return bool2; } catch (Exception localException) { if (getCurrentActivity() == null) { break label73; } } if (!getCurrentActivity().isFinishing()) {} label73: for (boolean bool1 = true;; bool1 = false) { return bool1; } } public static void setCurrentActivity(BaseActivity paramBaseActivity) { msCurrentActivity = paramBaseActivity; } public void onCreate() { super.onCreate(); CrashHandler.getInstance().init(); }}
android捕获全局异常,CrashHandler
分类:
版权声明:本文为博主原创文章,未经博主允许不得转载。
- package com.numob.david.util;
- import java.io.File;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.lang.Thread.UncaughtExceptionHandler;
- import java.util.Date;
- import android.os.Environment;
- import android.util.Log;
- /**
- * 全局处理异常.
- *
- */
- public class CrashHandler implements UncaughtExceptionHandler {
- /** CrashHandler实例 */
- private static CrashHandler instance;
- /** 获取CrashHandler实例 ,单例模式*/
- public static CrashHandler getInstance() {
- if (instance == null) {
- instance = new CrashHandler();
- }
- return instance;
- }
- @Override
- public void uncaughtException(Thread arg0, Throwable arg1) {
- // ScreenManager.getScreenManager().popActivity(Pay.activity);
- // arg0.stop();
- // arg0.destroy();
- String logdir ;
- if(Environment.getExternalStorageDirectory()!=null){
- logdir = Environment.getExternalStorageDirectory().getAbsolutePath()
- + File.separator + "snda"+File.separator+"log" ;
- File file = new File(logdir);
- boolean mkSuccess;
- if (!file.isDirectory()) {
- mkSuccess = file.mkdirs();
- if (!mkSuccess) {
- mkSuccess = file.mkdirs();
- }
- }
- try {
- FileWriter fw = new FileWriter(logdir+File.separator+"error.log",true);
- fw.write(new Date()+"\n");
- StackTraceElement[] stackTrace = arg1.getStackTrace();
- fw.write(arg1.getMessage() + "\n");
- for (int i = 0; i < stackTrace.length; i++) {
- fw.write("file:" + stackTrace[i].getFileName() + " class:" + stackTrace[i].getClassName()
- + " method:" + stackTrace[i].getMethodName() + " line:" + stackTrace[i].getLineNumber()
- + "\n");
- }
- fw.write("\n");
- fw.close();
- } catch (IOException e) {
- Log.e("crash handler", "load file failed...", e.getCause());
- }
- }
- arg1.printStackTrace();
- android.os.Process.killProcess(android.os.Process.myPid());
- }
- }
Activity或是Application中加入这样的代码 :
- CrashHandler crashHandler = CrashHandler.getInstance();
- crashHandler.init(getApplicationContext());
今天只做简单介绍了。
0 0
- 手表开发中的CrashHandler
- 手表开发中的ConcurrentHashMap
- 手表邮件开发中的Application 和BaseActivity
- 手表开发的isFinishing
- 智能手表开发API接口
- 安卓中的质量监控CrashHandler implements UncaughtExceptionHandler
- CrashHandler在开发中运用(单例模式)
- 智能手表开发API接口之我见
- 智能手表开发API接口之我见
- Android智能定位手表开发-目录
- 注册 CrashHandler crashHandler = CrashHandler.getInstance();
- android CrashHandler
- 大家都来鄙视吧![劳斯丹顿] — 手表中的劳斯莱斯
- android艺术开发探索之 CrashHandler(全局捕获异常)和应用方法数越界
- 苹果三星小心了!传微软正开发智能手表
- EZ430-CHRONOS无线手表开发工具(一)资料收集
- 捕获全局异常 CrashHandler
- CrashHandler捕获全局异常
- 我的recyclerview设置布局样式
- [iOS] 绘图 CGContext 用法
- 我的recycleview示例
- 手表开发中的ConcurrentHashMap
- 我的butterKnife注解开发框架
- 手表开发中的CrashHandler
- Android 微信支付
- Cocos2dx工程总结
- Android抽象布局——include、merge 、ViewStub
- Android性能优化-泛谈 (一)
- Zip4j简单使用
- BNUOJ 51279[组队活动 Large](cdq分治+FFT)
- 我的recycleview 总结
- iOS开发-UIActionSheet和UIAlertController