2013-11-22 99 views
1

我是android新手,可否請任何人告訴我如何編寫有關內存管理的有效代碼。如何有效地管理Android應用程序的內存(堆)

public class XXX extends Activity { 

EditText et; 
ImageView iv; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    et = (EditText) findViewById(R.id.editText); 
iv = (ImageView) findViewById(R.id.iv); 


} 

    public void release(){ 
et=null; 

Drawable drawable = ((ImageView) iv).getDrawable(); 
     if (drawable instanceof BitmapDrawable) { 
      BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable; 
      bitmapDrawable.getBitmap().recycle(); 
     } 

iv=null; 
System.gc(); 
} 

public void onPic(View v){ 
// code to capture image 
} 

public void onSave(View v){ 
    DBHelper dbHelper = new DBHelper(this); 
    SqliteDatabase db = dbHelper.getReadableDatabase(); 

String name = et.getText().toString(); 

ContentValues cv cv= new ContentValues(); 
// saving , calling release(); and going back to main screen 


} 

有沒有什麼我可以做,以避免內存不足,掛電話?

+0

同時顯示在圖像查看圖像,你可以隨時將圖像尺寸調整到所需要的大小,然後設置以避免內存不足。 – Sandeep

+0

這可能有助於:: http://stackoverflow.com/questions/19264819/images-memory-management-in-android – ASP

+0

檢查這也:: http://developer.android.com/training/displaying-bitmaps/manage -memory.html – ASP

回答

0

位圖不會輕易釋放內存,因爲其中大多數內存不足異常是由此引起的。您可以調整位圖大小並加載它。

這可以幫助你這表明有效的位圖加載: Bitmap loading

你可以通過全面的瞭解文件從這裏 Bitmap handling

相關問題