3
我有一個只能運行在後臺線程中的助手類。有沒有一種方法可以利用StrictMode組件,並在主線程上運行時拋出自己的StrictMode違例?我可以在Android上拋出自己的嚴格模式違規嗎?
我有一個只能運行在後臺線程中的助手類。有沒有一種方法可以利用StrictMode組件,並在主線程上運行時拋出自己的StrictMode違例?我可以在Android上拋出自己的嚴格模式違規嗎?
從API 11開始,看起來最好的選擇是使用ThreadPolicy.Builder到detectCustomSlowCalls()。在後臺線程中,您可以通過調用StrictMode.noteSlowCall()將該方法標記爲「緩慢」。
這顯然意味着如果違規方法執行時間太長,將會拋出StrictMode違例。
FWIW,這個文件是可怕的。 ThreadPolicy.Builder具有複製/粘貼錯誤,並且StrictMode.noteSlowCall()永遠不會定義實際符合「緩慢」事件的條件。 – greg7gkb
另外,我從[專業Android應用程序](http://www.amazon.com/Android-Performance-Optimization-Professional-Apress/dp/1430239999)瞭解到這一點,它有一些完全合適的提示。 – greg7gkb
StrictMode不會爲您記錄緩慢的方法調用。該時間需要由應用程序開發人員執行,他們負責調用noteSlowCall(「err msg」);當一段代碼運行緩慢時 – smith324