StrictMode クラス

定義

StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。

[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
継承
StrictMode
属性

注釈

StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。

StrictMode は、アプリケーションのメイン スレッドで偶発的なディスクまたはネットワーク アクセスをキャッチするために最も一般的に使用されます。UI 操作が受信され、アニメーションが実行されます。 ディスク操作とネットワーク操作をメインスレッドから離しておくと、アプリケーションの応答性が大幅に向上します。 アプリケーションのメインスレッドの応答性を維持することで、ANR ダイアログがユーザーに表示されないようにすることもできます。

<p class="note">Android デバイスのディスクがフラッシュ メモリ上に存在することが多いにもかかわらず、多くのデバイスでは、コンカレンシーが非常に限られたメモリの上でファイルシステムが実行されることに注意してください。 多くの場合、ほぼすべてのディスク アクセスが高速ですが、特定の I/O が他のプロセスからバックグラウンドで発生すると、個々のケースで劇的に遅くなる可能性があります。 可能であれば、そのようなことが速くないと想定することをお勧めします。

、、またはその他のアプリケーション コンポーネントのメソッドのandroid.app.Applicationandroid.app.Activity早い段階から有効にするコード例android.app.Application#onCreate:

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();
            }

違反が検出された場合に何が起こるかを決定できます。 たとえば、 を使用するとThreadPolicy.Builder#penaltyLog、 の出力adb logcatをwatchし、アプリケーションを使用して違反が発生した場合に表示できます。

問題があると感じる違反が見つかると、解決に役立つさまざまなツール (スレッド、android.os.Handlerandroid.os.AsyncTaskandroid.app.IntentService、など) があります。しかし、StrictModeが見つけたすべてのものを修正せざるを得ないと感じないでください。 特に、ディスク アクセスの多くの場合は、通常のアクティビティ ライフサイクル中に必要になります。 StrictMode を使用して、誤って行ったことを見つけます。 ただし、UI スレッドでのネットワーク要求は、ほとんどの場合問題です。

<p class="note">StrictMode はセキュリティ メカニズムではなく、すべてのディスクまたはネットワーク アクセスを検索する保証はありません。 呼び出しの実行時 android.os.Binder にプロセス境界を越えて状態が伝達されますが、最終的にはベスト エフォート メカニズムです。 特に、JNI 呼び出しからのディスクまたはネットワーク アクセスによって必ずしもトリガーされるとは限りません。

android.os.StrictModeJava ドキュメント。

このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。

プロパティ

Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
JniIdentityHashCode

StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。

(継承元 Object)
JniPeerMembers

StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。

PeerReference

StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。

(継承元 Object)
ThresholdClass

この API は Mono for Android インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

(継承元 Object)
ThresholdType

この API は Mono for Android インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

(継承元 Object)

メソッド

AllowThreadDiskReads()

から現在ThreadPolicy#getThreadPolicyの を受け取る便利なラッパーは、ディスクの読み取りを許可するように変更し、 を使用#setThreadPolicyして新しいポリシーを設定し、ブロックの最後に復元できるように古いポリシーを返します。

AllowThreadDiskWrites()

から#getThreadPolicy電流ThreadPolicyを受け取る便利なラッパーは、ディスク読み取り &書き込みの両方を許可するように変更し、 を使用#setThreadPolicyして新しいポリシーを設定し、ブロックの最後に復元できるように古いポリシーを返します。

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Dispose()

StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。

(継承元 Object)
Dispose(Boolean)

StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。

(継承元 Object)
EnableDefaults()

違反がログに記録されるだけで、推奨される StrictMode の既定値を有効にします。

Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
GetThreadPolicy()

現在のスレッドのポリシーを返します。

GetVmPolicy()

現在の VM ポリシーを取得します。

JavaFinalize()

オブジェクトへの参照がなくなったとガベージ コレクションが判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
NoteSlowCall(String)

コードが低速であることに注意してください。

Notify()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドを起動します。

(継承元 Object)
SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
SetThreadPolicy(StrictMode+ThreadPolicy)

現在のスレッドで検出する必要があるアクションのポリシーと、そのようなアクションが発生した場合のペナルティを設定します。

SetVmPolicy(StrictMode+VmPolicy)

VM プロセス (任意のスレッド) で検出する必要があるアクションと、そのようなアクションが発生した場合のペナルティのポリシーを設定します。

ToArray<T>()

StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。

(継承元 Object)
ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
UnregisterFromRuntime()

StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。

(継承元 Object)
Wait()

現在のスレッドが起動するまで待機します。通常<は、通知</em> または>< em 中断</em によって待機します>。>

(継承元 Object)
Wait(Int64)

現在のスレッドが起動するまで待機します。通常<は、通知></em> または <>em 中断</em>、または特定のリアルタイムが経過するまで待機します。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドが起動するまで待機します。通常<は、通知></em> または <>em 中断</em>、または特定のリアルタイムが経過するまで待機します。

(継承元 Object)

明示的なインターフェイスの実装

IJavaPeerable.Disposed()

StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。

(継承元 Object)
IJavaPeerable.Finalized()

StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。

(継承元 Object)
IJavaPeerable.JniManagedPeerState

StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。

(継承元 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。

(継承元 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。

(継承元 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。

(継承元 Object)

拡張メソッド

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。

GetJniTypeName(IJavaPeerable)

StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。

適用対象