2012-05-25 200 views
0

我在我的android清单中添加了android:largeHeap =“true”属性,但它在我的应用程序允许的内存中似乎没有差别。当我在我的宏碁A100运行下面的活动(运行Android 3.2.1),我得到如下结果:android:largeHeap属性不起作用?

largeAmount = 256 
normalamount = 48 
allowedMax = 48 
outofmemoryexception allocating the 60mb byte array. 


public class TempActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 

     ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); 
     int largeAmount = manager.getLargeMemoryClass(); 
     int normalAmount = manager.getMemoryClass(); 

     long allowedMax = Runtime.getRuntime().maxMemory()/1024/1024; 

     byte[] bigarray = new byte[62914560]; 
    } 
} 

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.temp" 
    android:largeHeap="true" 
    android:versionCode="1" 
    android:versionName="1.0" > 
    <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="11"/> 
    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity 
      android:name=".TempActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 
</manifest> 

回答

1

糟糕,largeHeap属性所属的“应用程序”标签。