StrictMode Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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 |
| 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 |
| AllowThreadDiskWrites() |
Um wrapper de conveniência que usa a corrente |
| 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 |
| JavaAs<TResult>(IJavaPeerable) |
Tente coagir a digitar |
| 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 |