Lingua

StrictMode Classe

Definizione

StrictMode è uno strumento di sviluppo che rileva le cose che potresti fare per caso e le porta alla tua attenzione in modo da poterle correggere.

[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
Ereditarietà
StrictMode
Attributi

Commenti

StrictMode è uno strumento di sviluppo che rileva le cose che potresti fare per caso e le porta alla tua attenzione in modo da poterle correggere.

StrictMode viene usato più comunemente per intercettare l'accesso accidentale al disco o alla rete nel thread principale dell'applicazione, in cui vengono ricevute le operazioni dell'interfaccia utente e vengono eseguite animazioni. Mantenere il disco e le operazioni di rete fuori dal thread principale rende le applicazioni molto più fluide e reattive. Mantenendo reattivo il thread principale dell'applicazione, si impedisce anche la visualizzazione dei dialoghi ANR agli utenti.

Si noti che anche se il disco di un dispositivo Android è spesso in memoria flash, molti dispositivi eseguono un file system sopra tale memoria con concorrenza molto limitata. È spesso il caso in cui quasi tutti gli accessi al disco siano veloci, ma in singoli casi possono risultare notevolmente più lenti quando si verificano determinate operazioni di I/O in background da altri processi. Se possibile, è meglio presupporre che tali cose non siano veloci.

Codice di esempio da abilitare all'inizio del android.app.Applicationmetodo , android.app.Activityo di un altro componente dell'applicazione android.app.Application#onCreate :

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

È possibile decidere cosa deve accadere quando viene rilevata una violazione. Ad esempio, è ThreadPolicy.Builder#penaltyLog possibile controllare l'output di adb logcat mentre si usa l'applicazione per visualizzare le violazioni man mano che si verificano.

Se si riscontrano violazioni che si sentono problematiche, sono disponibili diversi strumenti per risolverli: thread, android.os.Handler, android.os.AsyncTask, android.app.IntentServicee così via. Ma non sentirsi costretti a correggere tutto ciò che StrictMode trova. In particolare, molti casi di accesso al disco sono spesso necessari durante il normale ciclo di vita delle attività. Usa StrictMode per trovare le cose che hai fatto per caso. Le richieste di rete nel thread dell'interfaccia utente sono quasi sempre un problema.

StrictMode non è un meccanismo di sicurezza e non è garantito trovare tutti gli accessi a disco o rete. Mentre propaga lo stato attraverso i limiti del processo quando si eseguono android.os.Binder chiamate, è comunque un meccanismo di lavoro ottimale. In particolare, l'accesso al disco o alla rete dalle chiamate JNI non lo attiverà necessariamente.

per android.os.StrictMode.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Proprietà

Nome Descrizione
Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
Handle

Handle per l'istanza di Android sottostante.

(Ereditato da Object)
JniIdentityHashCode

Ottiene il codice hash di identità assegnato a questo Java peer dal runtime di interoperabilità.

(Ereditato da Object)
JniManagedPeerState

StrictMode è uno strumento di sviluppo che rileva le cose che potresti fare per caso e le porta alla tua attenzione in modo da poterle correggere.

(Ereditato da JavaObject)
JniPeerMembers

Fornisce metadati del membro peer JNI per questo tipo.

PeerReference

Ottiene il riferimento all'oggetto JNI per questo peer Java.

(Ereditato da Object)
ThresholdClass

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

(Ereditato da Object)
ThresholdType

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

(Ereditato da Object)

Metodi

Nome Descrizione
AllowThreadDiskReads()

Un wrapper pratico che accetta l'oggetto corrente ThreadPolicy da #getThreadPolicy, lo modifica per consentire le letture su disco e imposta i nuovi criteri con #setThreadPolicy, restituendo i criteri precedenti in modo da poterlo ripristinare alla fine di un blocco.

AllowThreadDiskWrites()

Un wrapper pratico che accetta l'oggetto corrente ThreadPolicy da #getThreadPolicy, lo modifica per consentire le letture e le scritture su disco e imposta il nuovo criterio con #setThreadPolicy, restituendo i criteri precedenti in modo da poterlo ripristinare alla fine di un blocco.

Clone()

Crea e restituisce una copia di questo oggetto.

(Ereditato da Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

StrictMode è uno strumento di sviluppo che rileva le cose che potresti fare per caso e le porta alla tua attenzione in modo da poterle correggere.

(Ereditato da JavaObject)
Dispose()

Rilascia le risorse contenute in questo peer Java.

(Ereditato da Object)
Dispose(Boolean)

Rilascia le risorse contenute in questo peer Java.

(Ereditato da Object)
DisposeUnlessReferenced()

StrictMode è uno strumento di sviluppo che rileva le cose che potresti fare per caso e le porta alla tua attenzione in modo da poterle correggere.

(Ereditato da JavaObject)
EnableDefaults()

Abilita le impostazioni predefinite StrictMode consigliate, con violazioni appena registrate.

Equals(Object)

StrictMode è uno strumento di sviluppo che rileva le cose che potresti fare per caso e le porta alla tua attenzione in modo da poterle correggere.

(Ereditato da JavaObject)
Equals(Object)

Indica se un altro oggetto è "uguale a" questo.

(Ereditato da Object)
GetHashCode()

Restituisce un valore di codice hash per l'oggetto .

(Ereditato da Object)
GetThreadPolicy()

Restituisce i criteri del thread corrente.

GetVmPolicy()

Ottiene i criteri della macchina virtuale correnti.

JavaFinalize()

Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto .

(Ereditato da Object)
NoteSlowCall(String)

Per tenere presente che il codice è lento.

Notify()

Riattiva un singolo thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
NotifyAll()

Riattiva tutti i thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

StrictMode è uno strumento di sviluppo che rileva le cose che potresti fare per caso e le porta alla tua attenzione in modo da poterle correggere.

(Ereditato da JavaObject)
SetThreadPolicy(StrictMode+ThreadPolicy)

Imposta i criteri per le azioni che devono essere rilevate nel thread corrente, nonché la penalità se si verificano tali azioni.

SetVmPolicy(StrictMode+VmPolicy)

Imposta i criteri per le azioni che devono essere rilevate nel processo della macchina virtuale (in qualsiasi thread), nonché la penalità se si verificano tali azioni.

ToArray<T>()

Crea una matrice gestita da questo wrapper di matrice Java.

(Ereditato da Object)
ToString()

Restituisce una rappresentazione di stringa dell'oggetto .

(Ereditato da Object)
UnregisterFromRuntime()

Annulla la registrazione di questo Java peer dal runtime di interoperabilità.

(Ereditato da Object)
Wait()

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>.

(Ereditato da Object)
Wait(Int64, Int32)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)
Wait(Int64)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IJavaPeerable.Disposed()

StrictMode è uno strumento di sviluppo che rileva le cose che potresti fare per caso e le porta alla tua attenzione in modo da poterle correggere.

(Ereditato da JavaObject)
IJavaPeerable.Finalized()

StrictMode è uno strumento di sviluppo che rileva le cose che potresti fare per caso e le porta alla tua attenzione in modo da poterle correggere.

(Ereditato da JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

StrictMode è uno strumento di sviluppo che rileva le cose che potresti fare per caso e le porta alla tua attenzione in modo da poterle correggere.

(Ereditato da JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

StrictMode è uno strumento di sviluppo che rileva le cose che potresti fare per caso e le porta alla tua attenzione in modo da poterle correggere.

(Ereditato da JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

StrictMode è uno strumento di sviluppo che rileva le cose che potresti fare per caso e le porta alla tua attenzione in modo da poterle correggere.

(Ereditato da JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

StrictMode è uno strumento di sviluppo che rileva le cose che potresti fare per caso e le porta alla tua attenzione in modo da poterle correggere.

(Ereditato da JavaObject)

Metodi di estensione

Nome Descrizione
GetJniTypeName(IJavaPeerable)

Ottiene il nome JNI del tipo dell'istanza selfdi .

JavaAs<TResult>(IJavaPeerable)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo di tipo controllato dal runtime Android.

JavaCast<TResult>(IJavaObject)

StrictMode è uno strumento di sviluppo che rileva le cose che potresti fare per caso e le porta alla tua attenzione in modo da poterle correggere.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

Si applica a