Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android的OutOfMemory解決

Android的OutOfMemory解決

編輯:關於Android編程

安卓開發中應注意內存的釋放,一旦加載圖片或其他占用太多內存,此時就會發生OOM錯誤,即內存洩露。
在開發中,尤其應注意圖片資源的釋放。 1。背景圖片和ImageView釋放------尤其注意圖片資源 如:
  1. android:orientation="vertical"
  2. android:background="@drawable/main_background"
  3. android:id="@+id/mian_bg"
  4. android:scaleType="fitXY"
  5. android:gravity="center"
  6. android:layout_width="fill_parent"
  7. android:layout_height="fill_parent"
  8. >
  9. android:layout_gravity="center"
  10. android:src="@drawable/img_main_roll0"
  11. android:id="@+id/main_cion"
  12. android:layout_width="180dp"
  13. android:layout_height="180dp"/>
  14.  
  15.  
  16. 先獲取圖片控件:
  17. public ImageView imageView;
  18. public LinearLayout linearLayout;
  19.  
  20. imageView=(ImageView)findViewById(R.id.main_cion);
  21. linearLayout=(LinearLayout)findViewById(R.id.mian_bg);
  22. 應在次Activity銷毀時釋放
  23. protected void onDestroy() {
  24. super.onDestroy();
  25. imageView.setImageBitmap(null);//釋放
  26. linearLayout.setBackground(null);
  27. System.gc();//通知進行回收
  28. }
  29.  
  30. 使用Bitmap記得不用時調用回收
  31. bitmap.recycle();
  32.  
  33.  
  34. 總結:
  35. 無論你是在xml中布局使用了:
  36.  
  37. android:background ,
  38.  
  39. 還是在java代碼中調用了:
  40.  
  41. setBackground( background );-------API16+
  42.  
  43. setBackgroundDrawable( background)--------API16-
  44.  
  45. setBackgroundResource( resid)
  46.  
  47. 的方式去設置了背景圖片.
  48.  
  49. 使用的時候,請調用一下對應的方法:
  50. setBackgroundResource和 android:background → setBackgroundResource(0);
  51.  
  52. setBackgroundDrawable( background) → setBackgroundDrawable (null)
  53.  
  54. setBackground ( background ) → setBackground ( null )
  55. 然後再onDestory中調用System.gc();
  56. 復制代碼 2.確定不用的List,數組等參數 釋放:Obj=null即可,list先clear(),在令其等於null;如內存緊張,可及時調用Syetem.gc()通知進行回收
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved