StrictMode是從Android2.3引入的一種新調試功能。它的用途是報告與線程和虛擬機相關的策略違規。如果檢測到策略違規,則發出一個提醒,其中包含一個棧幀,現實違規時的應用程序狀態,可是強制使應用在提醒時崩潰,或者僅僅提示,然後繼續運行。
目前StrictMode有兩種類型的策略:一種與線程有關,一種與虛擬機有關。
1.線程策略違規的檢測:
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork() // or .detectAll() for all detectable problems
.penaltyLog()
.build());
2.vm策略違規的檢測:
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects()
.detectLeakedClosableObjects()
.penaltyLog()
.penaltyDeath()
.build());
這些代碼應該放在Application或者Activity的onCreate的最前面。
發現違規以後,我們可以使用thread,handler,intentservice等組件來解決這些問題。
更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11