StrictMode Classe

Definição

StrictMode é uma ferramenta de desenvolvedor que detecta coisas que você pode estar fazendo por acidente e traz sua atenção para que você possa corrigi-las.

[Android.Runtime.Register("android/os/StrictMode", DoNotGenerateAcw=true)]
public sealed class StrictMode : Java.Lang.Object
[<Android.Runtime.Register("android/os/StrictMode", DoNotGenerateAcw=true)>]
type StrictMode = class
    inherit Object
Herança
StrictMode
Atributos

Comentários

StrictMode é uma ferramenta de desenvolvedor que detecta coisas que você pode estar fazendo por acidente e traz sua atenção para que você possa corrigi-las.

StrictMode é mais comumente usado para capturar o acesso acidental ao disco ou à rede no thread principal do aplicativo, em que as operações de interface do usuário são recebidas e as animações ocorrem. Manter as operações de disco e rede fora do thread principal torna os aplicativos muito mais suaves e responsivos. Mantendo o thread principal do aplicativo responsivo, você também impede que as caixas de diálogo ANR sejam mostradas aos usuários .

Observe que, embora o disco de um dispositivo Android esteja frequentemente na memória flash, muitos dispositivos executam um sistema de arquivos em cima dessa memória com simultaneidade muito limitada. Geralmente, é o caso de que quase todos os acessos a disco são rápidos, mas podem, em casos individuais, ser dramaticamente mais lentos quando determinada E/S está acontecendo em segundo plano de outros processos. Se possível, é melhor assumir que essas coisas não são rápidas.

Código de exemplo para habilitar desde o início em seu android.app.Applicationandroid.app.Activitymétodo do componente do android.app.Application#onCreate aplicativo ou do aplicativo:

override fun onCreate(savedInstanceState: Bundle?) {
                super.onCreate(savedInstanceState)
                StrictMode.setThreadPolicy(
                    StrictMode.ThreadPolicy.Builder()
                    .detectAll()
                    .build()
                )
                StrictMode.setVmPolicy(
                    StrictMode.VmPolicy.Builder()
                    .detectAll()
                    .build()
                )
            }

Você pode decidir o que deve acontecer quando uma violação é detectada. Por exemplo, usar ThreadPolicy.Builder#penaltyLog você pode observar a saída enquanto adb logcat usa seu aplicativo para ver as violações à medida que elas acontecem.

Se você achar violações que você acha que são problemáticas, há uma variedade de ferramentas para ajudar a resolvê-las: threads, android.os.Handler, android.os.AsyncTasketc android.app.IntentService. Mas não se sinta obrigado a corrigir tudo o que StrictMode encontra. Em particular, muitos casos de acesso ao disco geralmente são necessários durante o ciclo de vida da atividade normal. Use StrictMode para encontrar coisas que você fez por acidente. No entanto, as solicitações de rede no thread da interface do usuário são quase sempre um problema.

StrictMode não é um mecanismo de segurança e não é garantido encontrar todos os acessos de disco ou rede. Embora ele propaga seu estado entre os limites do processo ao fazer android.os.Binder chamadas, ele ainda é, em última análise, um mecanismo de melhor esforço. Notavelmente, o acesso ao disco ou à rede de chamadas JNI não necessariamente o disparará.

Java documentação para android.os.StrictMode.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Propriedades

Nome Description
Class

Retorna a classe de tempo de execução deste Object.

(Herdado de Object)
Handle

O identificador para a instância subjacente do Android.

(Herdado de Object)
JniIdentityHashCode

Obtém o código de hash de identidade atribuído a esse par Java pelo runtime de interoperabilidade.

(Herdado de Object)
JniManagedPeerState

StrictMode é uma ferramenta de desenvolvedor que detecta coisas que você pode estar fazendo por acidente e traz sua atenção para que você possa corrigi-las.

(Herdado de JavaObject)
JniPeerMembers

Fornece metadados de membro par JNI para esse tipo.

PeerReference

Obtém a referência de objeto JNI para este par Java.

(Herdado de Object)
ThresholdClass

Essa API é compatível com a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código.

(Herdado de Object)
ThresholdType

Essa API é compatível com a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código.

(Herdado de Object)

Métodos

Nome Description
AllowThreadDiskReads()

Um wrapper de conveniência que usa a corrente ThreadPolicy , #getThreadPolicymodifica-a para permitir leituras de disco e define a nova política com #setThreadPolicy, retornando a política antiga para que você possa restaurá-la no final de um bloco.

AllowThreadDiskWrites()

Um wrapper de conveniência que usa a corrente ThreadPolicy de #getThreadPolicy, modifica-a para permitir leituras de disco & gravações e define a nova política com #setThreadPolicy, retornando a política antiga para que você possa restaurá-la no final de um bloco.

Clone()

Cria e retorna uma cópia desse objeto.

(Herdado de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

StrictMode é uma ferramenta de desenvolvedor que detecta coisas que você pode estar fazendo por acidente e traz sua atenção para que você possa corrigi-las.

(Herdado de JavaObject)
Dispose()

Libera os recursos mantidos por esse par Java.

(Herdado de Object)
Dispose(Boolean)

Libera os recursos mantidos por esse par Java.

(Herdado de Object)
DisposeUnlessReferenced()

StrictMode é uma ferramenta de desenvolvedor que detecta coisas que você pode estar fazendo por acidente e traz sua atenção para que você possa corrigi-las.

(Herdado de JavaObject)
EnableDefaults()

Habilita os padrões de StrictMode recomendados, com violações apenas sendo registradas.

Equals(Object)

StrictMode é uma ferramenta de desenvolvedor que detecta coisas que você pode estar fazendo por acidente e traz sua atenção para que você possa corrigi-las.

(Herdado de JavaObject)
Equals(Object)

Indica se algum outro objeto é "igual a" este.

(Herdado de Object)
GetHashCode()

Retorna um valor de código hash para o objeto.

(Herdado de Object)
GetThreadPolicy()

Retorna a política do thread atual.

GetVmPolicy()

Obtém a política de VM atual.

JavaFinalize()

Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto.

(Herdado de Object)
NoteSlowCall(String)

Para o código observar que ele é lento.

Notify()

Ativa um único thread que está aguardando no monitor desse objeto.

(Herdado de Object)
NotifyAll()

Ativa todos os threads que estão aguardando no monitor deste objeto.

(Herdado de Object)
SetHandle(IntPtr, JniHandleOwnership)

Define a propriedade Handle

(Herdado de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

StrictMode é uma ferramenta de desenvolvedor que detecta coisas que você pode estar fazendo por acidente e traz sua atenção para que você possa corrigi-las.

(Herdado de JavaObject)
SetThreadPolicy(StrictMode+ThreadPolicy)

Define a política para quais ações no thread atual devem ser detectadas, bem como a penalidade se essas ações ocorrerem.

SetVmPolicy(StrictMode+VmPolicy)

Define a política para quais ações no processo de VM (em qualquer thread) devem ser detectadas, bem como a penalidade se essas ações ocorrerem.

ToArray<T>()

Cria uma matriz gerenciada com base nesse wrapper de matriz Java.

(Herdado de Object)
ToString()

Retorna uma representação de cadeia de caracteres do objeto.

(Herdado de Object)
UnregisterFromRuntime()

Cancela o registro desse par Java do runtime de interoperabilidade.

(Herdado de Object)
Wait()

Faz com que o thread atual aguarde até que seja despertado, normalmente sendo <notificado></em> ou <em>interrompido</em>.

(Herdado de Object)
Wait(Int64, Int32)

Faz com que o thread atual aguarde até que seja ativado, normalmente sendo <notificado></em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)
Wait(Int64)

Faz com que o thread atual aguarde até que seja ativado, normalmente sendo <notificado></em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)

Implantações explícitas de interface

Nome Description
IJavaPeerable.Disposed()

StrictMode é uma ferramenta de desenvolvedor que detecta coisas que você pode estar fazendo por acidente e traz sua atenção para que você possa corrigi-las.

(Herdado de JavaObject)
IJavaPeerable.Finalized()

StrictMode é uma ferramenta de desenvolvedor que detecta coisas que você pode estar fazendo por acidente e traz sua atenção para que você possa corrigi-las.

(Herdado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

StrictMode é uma ferramenta de desenvolvedor que detecta coisas que você pode estar fazendo por acidente e traz sua atenção para que você possa corrigi-las.

(Herdado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

StrictMode é uma ferramenta de desenvolvedor que detecta coisas que você pode estar fazendo por acidente e traz sua atenção para que você possa corrigi-las.

(Herdado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

StrictMode é uma ferramenta de desenvolvedor que detecta coisas que você pode estar fazendo por acidente e traz sua atenção para que você possa corrigi-las.

(Herdado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

StrictMode é uma ferramenta de desenvolvedor que detecta coisas que você pode estar fazendo por acidente e traz sua atenção para que você possa corrigi-las.

(Herdado de JavaObject)

Métodos de Extensão

Nome Description
GetJniTypeName(IJavaPeerable)

Obtém o nome JNI do tipo da instância self.

JavaAs<TResult>(IJavaPeerable)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo verificada pelo tempo de execução do Android.

JavaCast<TResult>(IJavaObject)

StrictMode é uma ferramenta de desenvolvedor que detecta coisas que você pode estar fazendo por acidente e traz sua atenção para que você possa corrigi-las.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

Aplica-se a