ApplicationWorkingSetLimit在Windows Phone Silverlight 8.1中返回0

时间:2014-10-01 17:49:27

标签: c# windows-phone-8.1

我有一个 Windows Phone Silverlight 8.1 应用,它一直使用ApplicationWorkingSetLimit来检测高内存和低内存设备。但是在8.1上我发现这个值返回0,而不是app限制。

long result = (long)DeviceExtendedProperties.GetValue("ApplicationWorkingSetLimit");
return result <= 188743680; // 188743680 (180mb) is the maximum a low mem device 

因为结果始终为0,所以即使是高端设备也会将其标记为低内存。我已经在8.1模拟器和我的Lumia 920上尝试了这一点并没有区别。我没有任何有效的方法来判断什么是高或低。这是操作系统中的错误吗?

2 个答案:

答案 0 :(得分:4)

您可以使用Windows.System.MemoryManagerAppMemoryUsageLimit财产。

var limit = Windows.System.MemoryManager.AppMemoryUsageLimit;
// some limit comparison here

以下是不同设备的内存上限:

Memory caps for WP 8.1 apps

答案 1 :(得分:0)

要尝试的两件事:

  1. 将188743680更改为188743680L。它可能并不重要,但最好确定。
  2. 尝试启用ID_CAP_IDENTITY_DEVICE功能。文件说你不需要它,但可能会产生影响。