IComponentCallbacks2 インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
よりきめ細かいメモリ管理のための新しいコールバックを備えた拡張 ComponentCallbacks
インターフェイス。
[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
- 派生
- 属性
- 実装
注釈
よりきめ細かいメモリ管理のための新しいコールバックを備えた拡張 ComponentCallbacks
インターフェイス。 このインターフェイスは、すべてのアプリケーション コンポーネント (android.app.Activity
、android.app.Service
ContentProvider
およびandroid.app.Application
) で使用できます。
を実装 #onTrimMemory
して、現在のシステム制約に基づいてメモリを段階的に解放する必要があります。 このコールバックを使用してリソースを解放すると、全体的に応答性の高いシステムが提供されますが、システムでプロセスを長く維持できるようにすることで、アプリのユーザー エクスペリエンスを直接向上させることができます。 つまり、<>このコールバックによって定義されたメモリ レベルに基づいてリソースをトリミングしない<場合>、システムはプロセスを最も最近使用されていない (LRU) リストにキャッシュされている間にプロセスを強制終了する可能性が高いため、ユーザーが戻ったときにすべての状態を再起動して復元する必要があります。
によって #onTrimMemory
提供される値は、メモリ制限の 1 つの線形進行を表すわけではありませんが、メモリの可用性に関するさまざまな種類の手掛かりを提供します。
<ul><li>アプリが実行されている場合: <ol><li>#TRIM_MEMORY_RUNNING_MODERATE
<br>デバイスがメモリ不足になり始めています。 アプリが実行されており、強制終了できません。 <li>#TRIM_MEMORY_RUNNING_LOW
<br>デバイスはメモリではるかに低く実行されています。 アプリは実行されており、強制終了できませんが、システム のパフォーマンスを向上させるために未使用のリソースを解放してください (これはアプリのパフォーマンスに直接影響します)。 <li>#TRIM_MEMORY_RUNNING_CRITICAL
<br>デバイスのメモリが非常に少なくなっています。 アプリはまだ強制終了可能なプロセスとは見なされていませんが、アプリがリソースを解放しない場合、システムはバックグラウンド プロセスの強制終了を開始するため、パフォーマンスの低下を防ぐために、重要でないリソースを今すぐ解放する必要があります。 </ol></li li><>アプリの可視性が変更された場合: <ol><li#TRIM_MEMORY_UI_HIDDEN
><br>アプリの UI は表示されなくなったため、UI でのみ使用される大規模なリソースを解放することをお勧めします。 </ol></li li><>アプリのプロセスがバックグラウンドの LRU リストに存在する場合: <ol><li#TRIM_MEMORY_BACKGROUND
><br>システムはメモリ不足で実行されており、プロセスは LRU リストの先頭付近にあります。 アプリ プロセスが強制終了されるリスクは高くはありませんが、システムは既に LRU リスト内のプロセスを強制終了している可能性があるため、回復しやすいリソースを解放して、ユーザーがアプリに戻ったときにプロセスが一覧に残り、すぐに再開されるようにする必要があります。 <li>#TRIM_MEMORY_MODERATE
<br>システムがメモリ不足で実行されており、プロセスは LRU リストの中央付近にあります。 システムがメモリに対してさらに制約された場合は、プロセスが強制終了される可能性があります。 <li>#TRIM_MEMORY_COMPLETE
<br>システムがメモリ不足で実行されており、システムがメモリを回復しない場合、プロセスは最初に強制終了されたプロセスの 1 つです。 アプリの状態を再開するために重要ではないすべてを絶対に解放する必要があります。
14 未満の API レベルをサポートするには、 メソッドを #onLowMemory
、レベルとほぼ同等 ComponentCallbacks2#TRIM_MEMORY_COMPLETE
のフォールバックとして使用できます。 </li></ol><p class="note"><strong>Note:</strong> システムが LRU リストでプロセスの強制終了を開始すると、主にボトムアップで動作しますが、どのプロセスがより多くのメモリを消費しているかを考慮し、強制終了した場合にメモリの増加を実現します。 そのため、LRU リスト全体で消費されるメモリが少ないほど、リストに残り、すぐに再開できる可能性が高くなります。
</li></ul>
プロセス ライフサイクルのさまざまなステージ (バックグラウンド LRU リストに配置される意味など) の詳細については、「 プロセスとスレッド 」ドキュメントを参照してください。
の Java ドキュメント android.content.ComponentCallbacks2
。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
プロパティ
Handle |
基になる Android オブジェクトの JNI 値を取得します。 (継承元 IJavaObject) |
JniIdentityHashCode |
ラップされたインスタンスの の |
JniManagedPeerState |
マネージド ピアの状態。 (継承元 IJavaPeerable) |
JniPeerMembers |
メンバー アクセスと呼び出しのサポート。 (継承元 IJavaPeerable) |
PeerReference |
JniObjectReferenceラップされた Java オブジェクト インスタンスの を返します。 (継承元 IJavaPeerable) |
メソッド
Disposed() |
インスタンスが破棄されたときに呼び出されます。 (継承元 IJavaPeerable) |
DisposeUnlessReferenced() |
このインスタンスへの未処理の参照がない場合は、 を呼び出 |
Finalized() |
インスタンスが終了したときに呼び出されます。 (継承元 IJavaPeerable) |
OnConfigurationChanged(Configuration) |
コンポーネントの実行中にデバイス構成が変更されたときにシステムによって呼び出されます。 (継承元 IComponentCallbacks) |
OnLowMemory() |
これは、システム全体がメモリ不足で実行されており、アクティブに実行されているプロセスがメモリ使用量を削減する必要がある場合に呼び出されます。 (継承元 IComponentCallbacks) |
OnTrimMemory(TrimMemory) |
プロセスが不要なメモリをプロセスからトリミングする適切なタイミングであるとオペレーティング システムが判断したときに呼び出されます。 |
SetJniIdentityHashCode(Int32) |
によって返される値を |
SetJniManagedPeerState(JniManagedPeerStates) |
よりきめ細かいメモリ管理のための新しいコールバックを備えた拡張 |
SetPeerReference(JniObjectReference) |
によって返される値を |
UnregisterFromRuntime() |
ランタイムが将来 Java.Interop.JniRuntime+JniValueManager.PeekValue の呼び出しから返されないように、このインスタンスの登録を解除します。 (継承元 IJavaPeerable) |
拡張メソッド
JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
JavaCast<TResult>(IJavaObject) |
よりきめ細かいメモリ管理のための新しいコールバックを備えた拡張 |
GetJniTypeName(IJavaPeerable) |
よりきめ細かいメモリ管理のための新しいコールバックを備えた拡張 |