android StrictMode設定導致程式崩潰
阿新 • • 發佈:2019-01-05
在andorid開發過程中有時候會用到StrictMode進行相關操作,可以用來幫助開發者發現程式碼中的一些不規範的問題,以達到提升應用響應能力的目的
StrictMode分為以下兩種策略:
1. 執行緒監控策略
2.VM虛擬機器監控策略
ThreadPolicy執行緒策略檢測
- 執行緒策略檢測的內容有
- 自定義的耗時呼叫 使用detectCustomSlowCalls()開啟
- 磁碟讀取操作 使用detectDiskReads()開啟
- 磁碟寫入操作 使用detectDiskWrites()開啟
- 網路操作 使用detectNetwork()開啟
VmPolicy虛擬機器策略檢測
- Activity洩露 使用detectActivityLeaks()開啟
- 未關閉的Closable物件洩露 使用detectLeakedClosableObjects()開啟
- 洩露的Sqlite物件 使用detectLeakedSqlLiteObjects()開啟
- 檢測例項數量 使用setClassInstanceLimit()開啟
使用penaltyDeath()的話,一旦StrictMode訊息被寫到LogCat後會導致應用崩潰。
StrictMode .setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads().detectDiskWrites() .detectCustomSlowCalls().detectNetwork() // .penaltyDialog() // 彈出違規提示對話方塊 .penaltyLog() // 在Logcat 中列印違規異常資訊 .penaltyFlashScreen().build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() .detectLeakedSqlLiteObjects().detectAll().penaltyLog() //.penaltyDeath() //一旦penaltyLog執行,直接導致程式崩潰 .build());
隨筆寫StrictMode相關內容,Logcat所報錯誤如何解決網上有很多資源,本人也在學習當中,寫下本文供大家參考,有好意見歡迎交流。