言語

IComponentCallbacks2 インターフェイス

定義

バックグラウンド メモリ管理を改善するために使用できるアプリの状態遷移のコールバック。

[Android.Runtime.Register("android/content/ComponentCallbacks2", "", "Android.Content.IComponentCallbacks2Invoker")]
public interface IComponentCallbacks2 : Android.Content.IComponentCallbacks, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/content/ComponentCallbacks2", "", "Android.Content.IComponentCallbacks2Invoker")>]
type IComponentCallbacks2 = interface
    interface IComponentCallbacks
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
派生
属性
実装

注釈

バックグラウンド メモリ管理を改善するために使用できるアプリの状態遷移のコールバック。 このインターフェイスは、すべてのアプリケーション コンポーネント (android.app.Activityandroid.app.ServiceContentProvider、および android.app.Application) で使用できます。

アプリがバックグラウンド状態になったときにメモリを解放する #onTrimMemory を実装する必要があります。 これにより、ユーザーが次回アプリをフォアグラウンドに移動すると、アプリが ウォーム スタートまたはホット スタートを実行し、再開速度が速くなり、状態が保持されるように、システムはアプリのプロセスを長い間メモリにキャッシュし続けることができます。

<h2>Trim メモリ レベルとその処理方法</h2>

<ul><li>#TRIM_MEMORY_UI_HIDDEN<br> アプリの UI が表示されなくなりました。 これは、、ビデオの再生やアニメーションに関連するリソースなど、UI によってのみ使用される大きなメモリ割り当てを解放するのに適したタイミングです。 <li>#TRIM_MEMORY_BACKGROUND<br> アプリのプロセスはバックグラウンドにあると見なされ、他のプロセスのメモリを解放するために強制終了される資格があります。 より多くのメモリを解放すると、プロセスがメモリにキャッシュされたままになる時間が長くなります。 効果的な戦略は、ユーザーがアプリに戻ったときに再構築できるリソースを解放することです。 </ul>

表示されていないユーザーに対して引き続き動作するアプリは、メモリ使用量を減らすために動作を変更することで、 #TRIM_MEMORY_UI_HIDDEN コールバックに応答できます。 たとえば、音楽プレーヤーは、現在再生中のプレイリスト内のすべてのトラックのフルサイズのアルバム アートを、メモリにキャッシュされたビットマップとして保持できます。 アプリがバックグラウンドで再生されているのに音楽の再生が続く場合、アプリはキャッシュ動作を変更して、メモリ内のビットマップを少なく、または小さくすることができます。

トリム レベルの序数値は、一連のメモリ負荷イベントをエスカレートし、それに応じて値をインクリメントします。 今後、より多くの状態が追加される可能性があります。 そのため、特定の値をチェックするのではなく、 #onTrimMemory に渡されるレベルがアプリケーションで処理されるレベル以上かどうかを確認することが重要です。 例えば次が挙げられます。

{@code
            public void onTrimMemory(int level) {
                if (level >= TRIM_MEMORY_BACKGROUND) {
                    // Release any resources that can be rebuilt
                    // quickly when the app returns to the foreground
                    releaseResources();
                } else if (level >= TRIM_MEMORY_UI_HIDDEN) {
                    // Release UI-related resources
                    releaseUiResources();
                }
            }
            }

<strong>Note:</strong> ランタイムは、アプリケーションの状態の変化に応じてガベージ コレクション (GC) を呼び出すことができます。 アプリから GC を明示的に呼び出す必要はありません。

Javaドキュメント。

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

プロパティ

名前 説明
Handle

基になる Android オブジェクトの JNI 値を取得します。

(継承元 IJavaObject)
JniIdentityHashCode

ラップされたインスタンスの java.lang.System.identityHashCode() の値を返します。

(継承元 IJavaPeerable)
JniManagedPeerState

マネージド ピアの状態。

(継承元 IJavaPeerable)
JniObjectReferenceControlBlock

バックグラウンド メモリ管理を改善するために使用できるアプリの状態遷移のコールバック。

(継承元 IJavaPeerable)
JniPeerMembers

メンバー アクセスと呼び出しのサポート。

(継承元 IJavaPeerable)
PeerReference

ラップされたJava オブジェクト インスタンスのJniObjectReferenceを返します。

(継承元 IJavaPeerable)

メソッド

名前 説明
Disposed()

インスタンスが破棄されたときに呼び出されます。

(継承元 IJavaPeerable)
DisposeUnlessReferenced()

このインスタンスへの未処理の参照がない場合は、 Dispose()を呼び出します。それ以外の場合は何も実行しません。

(継承元 IJavaPeerable)
Finalized()

インスタンスが終了したときに呼び出されます。

(継承元 IJavaPeerable)
OnConfigurationChanged(Configuration)

コンポーネントの実行中にデバイス構成が変更されたときにシステムによって呼び出されます。

(継承元 IComponentCallbacks)
OnLowMemory()

これは、システム全体がメモリ不足で実行されており、アクティブに実行されているプロセスがメモリ使用量を削減する必要がある場合に呼び出されます。

(継承元 IComponentCallbacks)
OnTrimMemory(TrimMemory)

不要なメモリをプロセスからトリミングするプロセスに適したタイミングであるとオペレーティング システムが判断したときに呼び出されます。

SetJniIdentityHashCode(Int32)

JniIdentityHashCodeによって返される値を設定します。

(継承元 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

バックグラウンド メモリ管理を改善するために使用できるアプリの状態遷移のコールバック。

(継承元 IJavaPeerable)
SetPeerReference(JniObjectReference)

PeerReferenceによって返される値を設定します。

(継承元 IJavaPeerable)
UnregisterFromRuntime()

ランタイムが将来の Java.Interop.JniRuntime+JniValueManager.PeekValue 呼び出しから返されないように、このインスタンスの登録を解除します。

(継承元 IJavaPeerable)

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

バックグラウンド メモリ管理を改善するために使用できるアプリの状態遷移のコールバック。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象