IComponentCallbacks2 インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
バックグラウンド メモリ管理を改善するために使用できるアプリの状態遷移のコールバック。
[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.Activity、 android.app.Service、 ContentProvider、および 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 を明示的に呼び出す必要はありません。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
プロパティ
| 名前 | 説明 |
|---|---|
| Handle |
基になる Android オブジェクトの JNI 値を取得します。 (継承元 IJavaObject) |
| JniIdentityHashCode |
ラップされたインスタンスの |
| JniManagedPeerState |
マネージド ピアの状態。 (継承元 IJavaPeerable) |
| JniObjectReferenceControlBlock |
バックグラウンド メモリ管理を改善するために使用できるアプリの状態遷移のコールバック。 (継承元 IJavaPeerable) |
| JniPeerMembers |
メンバー アクセスと呼び出しのサポート。 (継承元 IJavaPeerable) |
| PeerReference |
ラップされたJava オブジェクト インスタンスのJniObjectReferenceを返します。 (継承元 IJavaPeerable) |
メソッド
| 名前 | 説明 |
|---|---|
| Disposed() |
インスタンスが破棄されたときに呼び出されます。 (継承元 IJavaPeerable) |
| DisposeUnlessReferenced() |
このインスタンスへの未処理の参照がない場合は、 |
| Finalized() |
インスタンスが終了したときに呼び出されます。 (継承元 IJavaPeerable) |
| OnConfigurationChanged(Configuration) |
コンポーネントの実行中にデバイス構成が変更されたときにシステムによって呼び出されます。 (継承元 IComponentCallbacks) |
| OnLowMemory() |
これは、システム全体がメモリ不足で実行されており、アクティブに実行されているプロセスがメモリ使用量を削減する必要がある場合に呼び出されます。 (継承元 IComponentCallbacks) |
| OnTrimMemory(TrimMemory) |
不要なメモリをプロセスからトリミングするプロセスに適したタイミングであるとオペレーティング システムが判断したときに呼び出されます。 |
| SetJniIdentityHashCode(Int32) |
|
| SetJniManagedPeerState(JniManagedPeerStates) |
バックグラウンド メモリ管理を改善するために使用できるアプリの状態遷移のコールバック。 (継承元 IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
|
| UnregisterFromRuntime() |
ランタイムが将来の Java.Interop.JniRuntime+JniValueManager.PeekValue 呼び出しから返されないように、このインスタンスの登録を解除します。 (継承元 IJavaPeerable) |
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
バックグラウンド メモリ管理を改善するために使用できるアプリの状態遷移のコールバック。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|