StrictMode Klasse

Definition

StrictMode ist ein Entwicklertool, das Dinge erkennt, die Sie möglicherweise versehentlich ausführen, und bringt sie auf Ihre Aufmerksamkeit, damit Sie sie beheben können.

[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
Vererbung
StrictMode
Attribute

Hinweise

StrictMode ist ein Entwicklertool, das Dinge erkennt, die Sie möglicherweise versehentlich ausführen, und bringt sie auf Ihre Aufmerksamkeit, damit Sie sie beheben können.

StrictMode wird am häufigsten verwendet, um versehentlichen Datenträger- oder Netzwerkzugriff im Hauptthread der Anwendung abzufangen, in dem UI-Vorgänge empfangen und Animationen ausgeführt werden. Das Beibehalten von Datenträger- und Netzwerkvorgängen außerhalb des Hauptthreads sorgt für viel reibungslosere, reaktionsfähigere Anwendungen. Indem Sie den Hauptthread Ihrer Anwendung reaktionsfähig halten, verhindern Sie auch, dass ANR-Dialogfelder benutzern angezeigt werden.

Beachten Sie, dass viele Geräte über dem Speicher eines Android-Geräts ein Dateisystem mit sehr eingeschränkter Parallelität ausführen. Es ist oft der Fall, dass fast alle Datenträgerzugriffe schnell sind, aber in einzelnen Fällen dramatisch langsamer sein kann, wenn bestimmte E/A im Hintergrund von anderen Prozessen ausgeführt werden. Wenn möglich, sollten Sie davon ausgehen, dass solche Dinge nicht schnell sind.

Beispielcode, der von anfang an in der Methode der android.app.Applicationandroid.app.ActivityAnwendungskomponente android.app.Application#onCreate aktiviert werden soll:

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

Sie können entscheiden, was passieren soll, wenn eine Verletzung erkannt wird. Beispielsweise ThreadPolicy.Builder#penaltyLog können Sie die Ausgabe adb logcat der Anwendung beobachten, während Sie Ihre Anwendung verwenden, um die Verletzungen zu sehen, während sie geschehen.

Wenn Sie Verletzungen finden, die Sie problematisch fühlen, gibt es eine Vielzahl von Tools, die ihnen helfen können: Threads, android.os.Handler, , android.os.AsyncTask, android.app.IntentServiceusw. Fühlen Sie sich jedoch nicht gezwungen, alles zu beheben, was StrictMode findet. Insbesondere sind viele Fälle des Datenträgerzugriffs häufig während des normalen Aktivitätslebenszyklus erforderlich. Verwenden Sie StrictMode, um dinge zu finden, die Sie versehentlich getan haben. Netzwerkanforderungen im UI-Thread sind jedoch fast immer ein Problem.

StrictMode ist kein Sicherheitsmechanismus und ist nicht garantiert, dass alle Datenträger- oder Netzwerkzugriffe gefunden werden. Obwohl er den Status bei android.os.Binder Aufrufen über Prozessgrenzen hinweg verteilt, ist er letztendlich immer noch ein Best-Effort-Mechanismus. Insbesondere wird der Datenträger- oder Netzwerkzugriff von JNI-Aufrufen nicht unbedingt ausgelöst.

Java-Dokumentation für android.os.StrictMode.

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Eigenschaften

Name Beschreibung
Class

Gibt die Laufzeitklasse dieses Werts Objectzurück.

(Geerbt von Object)
Handle

Das Handle für die zugrunde liegende Android-Instanz.

(Geerbt von Object)
JniIdentityHashCode

StrictMode ist ein Entwicklertool, das Dinge erkennt, die Sie möglicherweise versehentlich ausführen, und bringt sie auf Ihre Aufmerksamkeit, damit Sie sie beheben können.

(Geerbt von Object)
JniPeerMembers

StrictMode ist ein Entwicklertool, das Dinge erkennt, die Sie möglicherweise versehentlich ausführen, und bringt sie auf Ihre Aufmerksamkeit, damit Sie sie beheben können.

PeerReference

StrictMode ist ein Entwicklertool, das Dinge erkennt, die Sie möglicherweise versehentlich ausführen, und bringt sie auf Ihre Aufmerksamkeit, damit Sie sie beheben können.

(Geerbt von Object)
ThresholdClass

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

(Geerbt von Object)
ThresholdType

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

(Geerbt von Object)

Methoden

Name Beschreibung
AllowThreadDiskReads()

Ein Benutzerfreundlichkeitswrapper, der den aktuellen ThreadPolicy#getThreadPolicyWrapper verwendet, ändert ihn, um Datenträgerlesevorgänge zuzulassen, und legt die neue Richtlinie mit #setThreadPolicy, und gibt die alte Richtlinie zurück, sodass Sie sie am Ende eines Blocks wiederherstellen können.

AllowThreadDiskWrites()

Ein Benutzerfreundlichkeitswrapper, der den aktuellen ThreadPolicy#getThreadPolicyWrapper verwendet, ändert ihn so, dass beide Datenträger gelesen und geschrieben werden können, und legt die neue Richtlinie mit #setThreadPolicyund gibt die alte Richtlinie zurück, sodass Sie sie am Ende eines Blocks wiederherstellen können.

Clone()

Erstellt und gibt eine Kopie dieses Objekts zurück.

(Geerbt von Object)
Dispose()

StrictMode ist ein Entwicklertool, das Dinge erkennt, die Sie möglicherweise versehentlich ausführen, und bringt sie auf Ihre Aufmerksamkeit, damit Sie sie beheben können.

(Geerbt von Object)
Dispose(Boolean)

StrictMode ist ein Entwicklertool, das Dinge erkennt, die Sie möglicherweise versehentlich ausführen, und bringt sie auf Ihre Aufmerksamkeit, damit Sie sie beheben können.

(Geerbt von Object)
EnableDefaults()

Aktiviert die empfohlenen StrictMode-Standardwerte, wobei nur Verstöße protokolliert werden.

Equals(Object)

Gibt an, ob ein anderes Objekt "gleich" diesem Objekt ist.

(Geerbt von Object)
GetHashCode()

Gibt einen Hashcodewert für das Objekt zurück.

(Geerbt von Object)
GetThreadPolicy()

Gibt die Richtlinie des aktuellen Threads zurück.

GetVmPolicy()

Ruft die aktuelle VM-Richtlinie ab.

JavaFinalize()

Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection bestimmt, dass keine weiteren Verweise auf das Objekt vorhanden sind.

(Geerbt von Object)
NoteSlowCall(String)

Um Code zu beachten, dass es langsam ist.

Notify()

Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet.

(Geerbt von Object)
NotifyAll()

Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten.

(Geerbt von Object)
SetHandle(IntPtr, JniHandleOwnership)

Legt die Handle-Eigenschaft fest.

(Geerbt von Object)
SetThreadPolicy(StrictMode+ThreadPolicy)

Legt die Richtlinie fest, welche Aktionen für den aktuellen Thread erkannt werden sollen, sowie die Strafe, wenn solche Aktionen auftreten.

SetVmPolicy(StrictMode+VmPolicy)

Legt die Richtlinie fest, welche Aktionen im VM-Prozess (in einem beliebigen Thread) erkannt werden sollen, sowie die Strafe, wenn solche Aktionen auftreten.

ToArray<T>()

StrictMode ist ein Entwicklertool, das Dinge erkennt, die Sie möglicherweise versehentlich ausführen, und bringt sie auf Ihre Aufmerksamkeit, damit Sie sie beheben können.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolgendarstellung des Objekts zurück.

(Geerbt von Object)
UnregisterFromRuntime()

StrictMode ist ein Entwicklertool, das Dinge erkennt, die Sie möglicherweise versehentlich ausführen, und bringt sie auf Ihre Aufmerksamkeit, damit Sie sie beheben können.

(Geerbt von Object)
Wait()

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em< oder >em<unterbrochen>/em<.><>

(Geerbt von Object)
Wait(Int64, Int32)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)
Wait(Int64)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

Name Beschreibung
IJavaPeerable.Disposed()

StrictMode ist ein Entwicklertool, das Dinge erkennt, die Sie möglicherweise versehentlich ausführen, und bringt sie auf Ihre Aufmerksamkeit, damit Sie sie beheben können.

(Geerbt von Object)
IJavaPeerable.DisposeUnlessReferenced()

StrictMode ist ein Entwicklertool, das Dinge erkennt, die Sie möglicherweise versehentlich ausführen, und bringt sie auf Ihre Aufmerksamkeit, damit Sie sie beheben können.

(Geerbt von Object)
IJavaPeerable.Finalized()

StrictMode ist ein Entwicklertool, das Dinge erkennt, die Sie möglicherweise versehentlich ausführen, und bringt sie auf Ihre Aufmerksamkeit, damit Sie sie beheben können.

(Geerbt von Object)
IJavaPeerable.JniManagedPeerState

StrictMode ist ein Entwicklertool, das Dinge erkennt, die Sie möglicherweise versehentlich ausführen, und bringt sie auf Ihre Aufmerksamkeit, damit Sie sie beheben können.

(Geerbt von Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

StrictMode ist ein Entwicklertool, das Dinge erkennt, die Sie möglicherweise versehentlich ausführen, und bringt sie auf Ihre Aufmerksamkeit, damit Sie sie beheben können.

(Geerbt von Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

StrictMode ist ein Entwicklertool, das Dinge erkennt, die Sie möglicherweise versehentlich ausführen, und bringt sie auf Ihre Aufmerksamkeit, damit Sie sie beheben können.

(Geerbt von Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

StrictMode ist ein Entwicklertool, das Dinge erkennt, die Sie möglicherweise versehentlich ausführen, und bringt sie auf Ihre Aufmerksamkeit, damit Sie sie beheben können.

(Geerbt von Object)

Erweiterungsmethoden

Name Beschreibung
GetJniTypeName(IJavaPeerable)

Ruft den JNI-Namen des Typs der Instanz selfab.

JavaAs<TResult>(IJavaPeerable)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

JavaCast<TResult>(IJavaObject)

Führt eine android-laufzeitgecheckte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

StrictMode ist ein Entwicklertool, das Dinge erkennt, die Sie möglicherweise versehentlich ausführen, und bringt sie auf Ihre Aufmerksamkeit, damit Sie sie beheben können.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

Gilt für: