MASTG-KNOW-0009: StrictMode
O StrictMode é uma ferramenta de desenvolvimento para detectar violações, como acesso acidental a disco ou rede na thread principal do aplicativo. Também pode ser usado para verificar boas práticas de codificação, como a implementação de código com bom desempenho.
Diferentes políticas podem ser definidas usando o ThreadPolicy Builder e o VmPolicy Builder.
A reação a violações de política detectadas pode ser configurada usando um ou mais métodos penalty*. Por exemplo, penaltyLog() pode ser ativado para registrar qualquer violação de política no log do sistema.
Abaixo está um exemplo de StrictMode com políticas ativadas para acesso a disco e rede na thread principal. Se isso for detectado, uma mensagem de log será gravada no log do sistema e o aplicativo será forçado a encerrar.
public void onCreate() {
if (BuildConfig.DEBUG) {
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork() // ou .detectAll() para todos os problemas detectáveis
.penaltyLog()
.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects()
.detectLeakedClosableObjects()
.penaltyLog()
.penaltyDeath()
.build());
}
super.onCreate();
}
Recomenda-se incluir a política na instrução if com a condição BuildConfig.DEBUG para ativar automaticamente as políticas do StrictMode apenas em builds de debug do seu aplicativo.