編輯:關於Android編程
愛生活,愛Android!相信每一個Android開發人員都喜愛自己的工作,每天不停的生產代碼,不停的解決Bug,
樂在其中,不斷的學習,不斷的總結,我們應該積累出自己寫代碼的良好習慣,慢慢的,我們就會固定出完全屬於
自己的東西,下面是自己寫項目時,碰到的一個問題,跟大家分享一下,有見解不到之處,還請大家指教,謝謝!
大家都知道,Android是基於Java的,本身會產生很多我們寫代碼時預料不到的異常,而每一個異常都很可能
導致我們的程序崩潰,比如最常見的NullException、ClassCastException、ClassNotFoundException、ANR等等
的,而Android本身的OS會捕捉到這些異常,在dalvik中處理,然後退出程序,退出的界面也很不友好,在這種情況
下,我們就有了自己的想法,如果我們能捕捉到這些異常,就可以將其利用起來,提升我們的應用質量,我們可以
在捕捉到異常後進行如下操作:
1、定義自己的處理界面,友好的展現給客戶,提高用戶體驗
2、收集錯誤信息,及時修改,提高代碼的穩定性
光從文字看起來,這兩點非常簡單,但是當你自己將異常處理機制布署在自己項目中時,你就知道它對我們的項目
帶來多大的幫助!
下面來看一下,如何給自己的項目中布署全局的異常處理,步驟分為如下幾步:
第一步,注冊Application,在開發應用時都會和Activity打交道,而Application使用的就相對較少了。 Application
是用來管理應用程序的全局狀態的,比如載入資源文件。 在應用程序啟動的時候Application會首先創建,然後才會根
據情況(Intent)啟動相應的Activity或者Service。 本文將在Application中注冊未捕獲異常處理器。
第二步,實現UncaughtExceptionHandler,UncaughtExceptionHandler是線程未捕獲異常控制器,用來處理未捕
獲異常的。 如果程序出現了未捕獲異常默認情況下則會出現強行關閉對話框實現該接口並注冊為程序中的默認未捕獲異
常處理 這樣當未捕獲異常發生時,就可以做些異常處理操作 例如:收集異常信息,發送錯誤報告 等。當程序發生Uncaught
異常的時候,由該類來接管程序,並記錄發送錯誤報告。
第三步,異常處理操作的收集異常信息
第四步,異常處理操作的本地保存異常報告
第五步,異常處理操作的將異常信息發送到服務器
以上的五步,若大體的分類的話,只有第一步、第二步,後邊的第三步、第四步、第五步都是在異常處理類中實現的,只
是因為它是具體的處理過程,比較重要,所以本文中單獨列出來。
下面我們來看一下代碼實現:
注冊Application
<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+yrXP1lVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlcjwvcD4KPHA+tbGz9s/W0uyzo8qxo6y74b34yOt1bmNhdWdodEV4Y2VwdGlvbre9t6i0psDto6zO0sPHy/nT0LXEv9jWxra8v8nS1LzT1NrV4sDvPC9wPgo8cD48aW1nIHNyYz0="/uploadfile/Collfiles/20141126/20141126084405155.jpg" alt="\">
收集異常信息
本地保存異常報告,這一步非常實用,一些捕捉不到的異常,我們可以通過這樣的方式將它實例化,保存
在本地文件中,裡邊的詳細的信息,我們可以像在logcat中一樣,看到它具體是出在哪個類的哪一行,從而進行
修改,非常好用,強力推薦!
將異常信息發送到服務器
拿到異常信息後,我們還可以搭建自己的服務器,收集異常信息,想怎麼樣保存,就看大家自己的習慣了!
我這裡是拿到異常數據,保存到本地數據庫了,如下示例。
熟知:什麼是傳感器: 所謂傳感器能夠探測如光、熱、溫度、重力、方向 等等的功能!Android中提供傳感器有哪些:&nbs
上一篇講了內存緩存,這一篇就緊接著講一下磁盤緩存DiskLruCache.官方文檔:https://developer.android.com/training/disp
1.首先是注冊頁面的布局:<?xml version=1.0 encoding=utf-8?><LinearLayout xmlns:a
UITextView與UITextField功能類似,也是字符輸入的視圖控件。區別在於:1、UITextView是多行字符輸入,可通過回車鍵進行換行輸入2、也可以設置固定