0
我想爲我的應用程序使用幫助器方法isLowRamDevice
,該應用程序可以流式處理視頻。當我支持API級別15的設備時,我不得不使用ActivityManagerCompat.isLowRamDevice()
。 我真的很困惑,即使我使用的是舊設備,它總是返回錯誤。然後我檢查方法本身並看到這個:ActivityManagerCompat.isLowRamDevice無用,總是返回false
public static boolean isLowRamDevice(@NonNull ActivityManager am) {
if (Build.VERSION.SDK_INT >= 19) {
return ActivityManagerCompatKitKat.isLowRamDevice(am);
}
return false;
}
所以難怪它總是在我的Android 4.0.4設備上返回false。但對我來說這絕對沒有意義。或者我錯過了什麼?
當然,但運行Android 4.3或更高版本的設備更可能是lowRamDevices。那麼爲什麼他們通過支持lib使這種方法適用於舊設備?這絕對沒有意義。 – JensJensen
@JensJensen:「運行Android 4.3或更早版本的設備更可能是lowRamDevices」 - 不一定是Google對低RAM設備的定義。 「那麼爲什麼他們通過支持lib使這種方法適用於較老的設備呢?」 - 幾乎所有以'... Compat'結尾的類都以這種方式工作。他們呼籲在兼容設備上實現真正的實現,並在舊設備上返回一些存根。有時候,存根更復雜。在這種情況下,我同意他們應該根據實際的設備RAM獲得一個值。 – CommonsWare
該實現與其他支持庫一致。這聽起來像你想把舊設備視爲低RAM,所以我會說你最好將抽象調用和檢查API版本和isLowRamDevice()標誌放在一起。 –