編輯:關於Android編程
今天看到迅雷動漫裡面一個CrashHandler 的類,我猜是崩潰處理類。進去一看,果然。順便學習一下。
Android系統的“程序異常退出”,給應用的用戶體驗造成不良影響。為了捕獲應用運行時異常並給出友好提示,便可繼承UncaughtExceptionHandler類來處理。通過Thread.setDefaultUncaughtExceptionHandler()方法將異常處理類設置到線程上即可。
代碼:
public class CrashHandler implements UncaughtExceptionHandler {
private static final Logger LOG = Logger.getLogger(CrashHandler.class);
private final Application mApplication;
private Handler mUIHandler;
private Thread mUiThread;
public CrashHandler(Application app) {
mApplication = app;
mUIHandler = new Handler();
mUiThread = Thread.currentThread();
}
@Override
public void uncaughtException(Thread thread, Throwable e) {
LOG.error(e);
Throwable cause = e.getCause();
while (cause != null) {
LOG.error(cause);
cause = cause.getCause();
}
writeCrashInfoToFile(e);
if (Thread.currentThread() != mUiThread) {
mUIHandler.post(new Runnable() {
@Override
public void run() {
mApplication.onTerminate();
}
});
} else {
mApplication.onTerminate();
}
}
private void writeCrashInfoToFile(Throwable t) {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
t.printStackTrace(pw);
Throwable cause = t.getCause();
while (cause != null) {
cause.printStackTrace(pw);
cause = cause.getCause();
}
String crashInfo = sw.toString();
pw.close();
try {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
File file = mApplication.getApplicationContext().getExternalCacheDir();
if (file != null) {
file = FileUtils.getFile(file, crash);
file.mkdirs();
FileUtils.writeStringToFile(FileUtils.getFile(file, crash.log), crashInfo);
}
}
} catch (IOException e) {
LOG.warn(e);
}
}
}
Android學習筆記之Button的點擊事件切換點擊圖片
android:background=@drawable/button_selector (2)在res文件夾下創建drawable文件夾,創建一個s
Day25-Handler和Application
Handlerhandler是什麼 ? 是android給我們提供用來更新UI的一套機制, 也是一套消息處理的機制, 我們可以發送消息, 也可以通過它處理消息為什麼要用h
ListView上拉加載和下拉刷新多種實現方式
該篇為ListView下拉刷新和上拉加載實現的各種方法大合集。可能在具體的細節邏輯上處理不太到位,但基本上完成邏輯的實現。細節方面,個人可以根據自己的需求進行完善。該博客
Android-對抗反編譯工具的一種方式
首先我們來看下dex文件的格式: class_defs的結構: (1) class_idx 描述具體的 class 類型 ,值是 type_ids 的一