Share via


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 comunemente usato per intercettare l'accesso accidentale su disco o rete nel thread principale dell'applicazione, in cui vengono ricevute le operazioni dell'interfaccia utente e vengono eseguite animazioni. Mantenere le operazioni su disco e 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 delle finestre di dialogo ANR agli utenti.

<p class="nota">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 ai dischi siano veloci, ma in singoli casi possono essere 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 nelle prime fasi del android.app.Applicationmetodo , android.app.Activityo di android.app.Application#onCreate un altro componente dell'applicazione:

public void onCreate() {
                StrictMode.setThreadPolicy(new {@link ThreadPolicy.Builder StrictMode.ThreadPolicy.Builder}()
                        .detectDiskReads()
                        .detectDiskWrites()
                        .detectNetwork()   // or .detectAll() for all detectable problems
                        .penaltyLog()
                        .build());
                StrictMode.setVmPolicy(new {@link VmPolicy.Builder StrictMode.VmPolicy.Builder}()
                        .detectLeakedSqlLiteObjects()
                        .detectLeakedClosableObjects()
                        .penaltyLog()
                        .penaltyDeath()
                        .build());
                super.onCreate();
            }

È possibile decidere cosa deve accadere quando viene rilevata una violazione. Ad esempio, usando ThreadPolicy.Builder#penaltyLog è possibile watch 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.

<p class="note">StrictMode non è un meccanismo di sicurezza e non è garantito trovare tutti gli accessi al disco o alla rete. Anche se 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.

Documentazione java per android.os.StrictMode.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal Android e usato in base ai termini descritti in 2.5 Attribution License Creative Commons 2.5 Attribution License.

Proprietà

Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
Handle

Handle per l'istanza di Android sottostante.

(Ereditato da Object)
JniIdentityHashCode

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 Object)
JniPeerMembers

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.

PeerReference

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 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

AllowThreadDiskReads()

Un wrapper pratico che accetta l'oggetto corrente ThreadPolicy da #getThreadPolicy, lo modifica per consentire letture su disco e imposta il nuovo criterio 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 la lettura di entrambi i dischi & scritture 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)
Dispose()

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 Object)
Dispose(Boolean)

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 Object)
EnableDefaults()

Abilitare le impostazioni predefinite di StrictMode consigliate, con violazioni appena registrate.

Equals(Object)

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

(Ereditato da Object)
GetHashCode()

Restituisce un valore del 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 monitoraggio di questo oggetto.

(Ereditato da Object)
SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
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>()

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 Object)
ToString()

Restituisce una rappresentazione in formato stringa dell'oggetto.

(Ereditato da Object)
UnregisterFromRuntime()

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 Object)
Wait()

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

(Ereditato da Object)
Wait(Int64)

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

(Ereditato da Object)
Wait(Int64, Int32)

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

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

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 Object)
IJavaPeerable.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 Object)
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 Object)
IJavaPeerable.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 Object)
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 Object)
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 Object)
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 Object)

Metodi di estensione

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo verificato 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.

GetJniTypeName(IJavaPeerable)

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.

Si applica a