編輯:Android開發教程
異常捕獲主要是在全局的Application中來處理的,Android提供了一個CrashHandler用來進行錯誤處理。
intent添加 “Intent.FLAG_ACTIVITY_NEW_TASK” 標記的原因是——Content的startActivity方法,需要開啟一個新的task。如果使用 Activity的startActivity方法,不會有任何限制,因為Activity繼承自Context,重載了startActivity方法。所以如果是context啟動Activity就需要添加這個標記。
package com.chy.global;
import java.lang.Thread.UncaughtExceptionHandler;
import android.app.Application;
import android.content.Intent;
import com.chy.activity.MainActivity;
import com.chy.utils.LogUtils;
public class CrashApplication extends Application {
//全局錯誤信息, 當發生錯誤時去取該信息
private static String errMsg = null;
//異常處理器
private CrashHandler crashHandler = null;
@Override
public void onCreate() {
super.onCreate();
crashHandler = new CrashHandler(this);
Thread.setDefaultUncaughtExceptionHandler(crashHandler);
}
public static String getErrMsg() {
return errMsg;
}
public static void setErrMsg(String errMsg) {
CrashApplication.errMsg = errMsg;
}
class CrashHandler implements UncaughtExceptionHandler {
private Application app = null;
public CrashHandler(Application app) {
this.app = app;
}
@Override
public void uncaughtException(Thread thread, Throwable ex) {
ex.printStackTrace();
LogUtils.log(ex);
// 此處示例發生異常後,重新啟動應用
Intent intent = new Intent(app, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
app.startActivity(intent);
android.os.Process.killProcess(android.os.Process.myPid());
}
}
}
URL:http://www.bianceng.cn/OS/extra/201609/50437.htm
Android測試教程(17):Monkey 命令行工具
寫完應用之後,作完單元測試和功能測試,有必要對應用的抗打擊能力做個測試,最好的方法是雇個“猴子”在測試,猴子 可以胡亂瞎按鍵,在這種情況下,你的應
Android Annotations開源框架簡介
AndroidAnnotations是一個開源框架,旨在加快Android開發的效率。通過使用它開放出來的注解api,你幾乎可以使用在任何地方, 大大的減少了無關痛癢的代
Android系統自帶APP分析:短信app
Android操作系統本身就是一個巨大的開源軟件倉庫,熟悉它既可以了解到Android系統的設計框架,也可以獲得高效的應用程序編寫方式。本文所分析的源碼來自於Google
Android RoboGuice2使用指南(3) Inject自定義View
前面介紹了Android RoboGuice2 的HelloWorld示例,並介紹了從RoboGuice 1.1 升級到RoboGuice2.0 的主要注意事項。本例介紹