語言

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.Activity、、 android.app.ServiceContentProviderandroid.app.Application、 及 )中使用。

你應該實作 #onTrimMemory 在應用程式進入背景狀態時釋放記憶體。 這樣做能讓系統在記憶體中將應用程式的程序快取更久,這樣下次使用者將應用程式帶到前景時,應用程式會先進行 熱啟動,並更快恢復並保留狀態。

<h2>Trim 記憶體等級及如何處理/<h2>

<ul><li<>#TRIM_MEMORY_UI_HIDDENbr> 你的應用程式介面已經看不到了。 這是釋放大量僅供使用者介面使用的記憶體配置的好時機,例如 android.graphics.Bitmap Bitmaps,或與影片播放或動畫相關的資源。 <你的>#TRIM_MEMORY_BACKGROUND<>應用程式程序被視為背景,且有資格被終止以釋放記憶體給其他程序。 釋放更多記憶體會延長程序在記憶體中快取的時間。 一個有效的策略是釋出資源,當使用者返回應用程式時可以重建。 </ul>

當使用者不被看見時,持續為使用者工作的應用程式,可以透過改變行為來降低記憶體使用率來回應 #TRIM_MEMORY_UI_HIDDEN 回調。 例如,音樂播放器可能會將目前播放清單中所有曲目的全尺寸專輯封面作為點陣圖快取於記憶體中。 當應用程式處於背景但音樂播放持續時,應用程式可以改變快取行為,以快取較少或更小的位圖。

trim 水準的序數值代表一連串不斷遞增的記憶壓力事件,並相應遞增。 未來可能會新增更多州。 因此,重要的是不要檢查特定值,而是檢查傳遞到 #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 文件 android.content.ComponentCallbacks2。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

屬性

名稱 Description
Handle

取得底層 Android 物件的 JNI 值。

(繼承來源 IJavaObject)
JniIdentityHashCode

回傳包裹實例的 java.lang.System.identityHashCode() 值。

(繼承來源 IJavaPeerable)
JniManagedPeerState

管理貴族的狀況。

(繼承來源 IJavaPeerable)
JniObjectReferenceControlBlock

可用於改善背景記憶體管理的應用程式狀態轉換回調。

(繼承來源 IJavaPeerable)
JniPeerMembers

成員存取與召喚支援。

(繼承來源 IJavaPeerable)
PeerReference

回傳JniObjectReference包裹後的 Java 物件實例。

(繼承來源 IJavaPeerable)

方法

名稱 Description
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)

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

可用於改善背景記憶體管理的應用程式狀態轉換回調。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於