StrictMode Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger.
[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
- Héritage
- Attributs
Remarques
StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger.
StrictMode est le plus couramment utilisé pour intercepter l’accès accidentel au disque ou au réseau sur le thread principal de l’application, où les opérations d’interface utilisateur sont reçues et les animations ont lieu. La conservation des opérations de disque et de réseau hors du thread principal permet d’obtenir des applications beaucoup plus lisses et plus réactives. En gardant le thread principal de votre application réactif, vous empêchez également les boîtes de dialogue ANR d’être affichées aux utilisateurs.
Notez que même si le disque d’un appareil Android est souvent en mémoire flash, de nombreux appareils exécutent un système de fichiers sur cette mémoire avec une concurrence très limitée. C’est souvent le cas que presque tous les accès au disque sont rapides, mais qu’en cas individuels, ils peuvent être beaucoup plus lents lorsque certaines E/S se produisent en arrière-plan à partir d’autres processus. Si possible, il est préférable de supposer que ces choses ne sont pas rapides.
Exemple de code permettant d’activer dès le début de votre android.app.Applicationméthode , android.app.Activityou d’un autre composant d’application 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()
)
}
Vous pouvez décider de ce qui doit se produire lorsqu’une violation est détectée. Par exemple, l’utilisation ThreadPolicy.Builder#penaltyLog de vous permet de regarder la sortie de adb logcat pendant que vous utilisez votre application pour voir les violations à mesure qu’elles se produisent.
Si vous trouvez des violations que vous sentez problématiques, il existe un large éventail d’outils pour les résoudre : threads, android.os.Handler, android.os.AsyncTaskandroid.app.IntentServiceetc. Mais ne vous sentez pas obligé de corriger tout ce que StrictMode trouve. En particulier, de nombreux cas d’accès au disque sont souvent nécessaires pendant le cycle de vie normal de l’activité. Utilisez StrictMode pour trouver les choses que vous avez faites par accident. Les requêtes réseau sur le thread d’interface utilisateur sont presque toujours un problème, cependant.
StrictMode n’est pas un mécanisme de sécurité et n’est pas garanti pour rechercher tous les accès au disque ou au réseau. Bien qu’il propage son état au-delà des limites de processus lors de l’exécution android.os.Binder d’appels, il s’agit toujours d’un mécanisme d’effort optimal. Notamment, l’accès disque ou réseau à partir d’appels JNI ne le déclenche pas nécessairement.
Documentation Java pour android.os.StrictMode.
Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.
Propriétés
| Nom | Description |
|---|---|
| Class |
Retourne la classe runtime de ce |
| Handle |
Handle de l’instance Android sous-jacente. (Hérité de Object) |
| JniIdentityHashCode |
Obtient le code de hachage d’identité affecté à cet homologue Java par le runtime d’interopérabilité. (Hérité de Object) |
| JniManagedPeerState |
StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger. (Hérité de JavaObject) |
| JniPeerMembers |
Fournit des métadonnées de membre homologue JNI pour ce type. |
| PeerReference |
Obtient la référence d’objet JNI pour cet homologue Java. (Hérité de Object) |
| ThresholdClass |
Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code. (Hérité de Object) |
| ThresholdType |
Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code. (Hérité de Object) |
Méthodes
| Nom | Description |
|---|---|
| AllowThreadDiskReads() |
Un wrapper pratique qui prend le courant |
| AllowThreadDiskWrites() |
Un wrapper pratique qui prend le courant |
| Clone() |
Crée et retourne une copie de cet objet. (Hérité de Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger. (Hérité de JavaObject) |
| Dispose() |
Libère les ressources détenues par cet homologue Java. (Hérité de Object) |
| Dispose(Boolean) |
Libère les ressources détenues par cet homologue Java. (Hérité de Object) |
| DisposeUnlessReferenced() |
StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger. (Hérité de JavaObject) |
| EnableDefaults() |
Active les valeurs par défaut strictMode recommandées, avec des violations juste enregistrées. |
| Equals(Object) |
StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger. (Hérité de JavaObject) |
| Equals(Object) |
Indique si un autre objet est « égal à » celui-ci. (Hérité de Object) |
| GetHashCode() |
Retourne une valeur de code de hachage pour l'objet. (Hérité de Object) |
| GetThreadPolicy() |
Retourne la stratégie du thread actuel. |
| GetVmPolicy() |
Obtient la stratégie de machine virtuelle actuelle. |
| JavaFinalize() |
Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet. (Hérité de Object) |
| NoteSlowCall(String) |
Pour que le code sache qu’il est lent. |
| Notify() |
Réveille un thread unique qui attend le moniteur de cet objet. (Hérité de Object) |
| NotifyAll() |
Réveille tous les threads qui attendent le moniteur de cet objet. (Hérité de Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
Définit la propriété Handle. (Hérité de Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger. (Hérité de JavaObject) |
| SetThreadPolicy(StrictMode+ThreadPolicy) |
Définit la stratégie pour les actions sur le thread actuel à détecter, ainsi que la pénalité si de telles actions se produisent. |
| SetVmPolicy(StrictMode+VmPolicy) |
Définit la stratégie pour quelles actions du processus de machine virtuelle (sur n’importe quel thread) doit être détectée, ainsi que la pénalité si de telles actions se produisent. |
| ToArray<T>() |
Crée un tableau managé à partir de ce wrapper de tableau Java. (Hérité de Object) |
| ToString() |
Retourne une représentation de chaîne de l'objet. (Hérité de Object) |
| UnregisterFromRuntime() |
Annule l’inscription de cet homologue Java à partir du runtime d’interopérabilité. (Hérité de Object) |
| Wait() |
Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<> (Hérité de Object) |
| Wait(Int64, Int32) |
Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée. (Hérité de Object) |
| Wait(Int64) |
Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée. (Hérité de Object) |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| IJavaPeerable.Disposed() |
StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger. (Hérité de JavaObject) |
| IJavaPeerable.Finalized() |
StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger. (Hérité de JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger. (Hérité de JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger. (Hérité de JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger. (Hérité de JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger. (Hérité de JavaObject) |
Méthodes d’extension
| Nom | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtient le nom JNI du type de l’instance |
| JavaAs<TResult>(IJavaPeerable) |
Essayez de forcer |
| JavaCast<TResult>(IJavaObject) |
Effectue une conversion de type vérifiée par le runtime Android. |
| JavaCast<TResult>(IJavaObject) |
StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Essayez de forcer |