2013-11-22 102 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

相关问题