每次调用以下代码,然后返回到上一界面,内存基本只会增加,减少的非常少。一、使用BaseAdapter的泄露显示SmsRecord:  intent= new Intent();
  intent.setClass(getApplicationContext(), NormalSmsRecordActivity.class);
  startActivity(intent);
public class NormalSmsRecordActivity extends SmsRecord 
{

@Override
public void onCreate(Bundle savedInstanceState)
{
    //先显示一定数量短信,然后在后台刷新
    super.onCreate(savedInstanceState);
    
} @Override
    public void onDestroy()
    {
    
     super.onDestroy();
    }

/**
 *@param 
 * 刷新当前smsArrayList数据
 */
@Override
protected void RefreshData() 
{
//SysSmsManager smsManager = new SysSmsManager();
//arrayList = smsManager.getSysSmsDetail(this, boxType);
    Sms sms = new Sms();
    sms.setArea("昆明");
    sms.setSmsContent("测试记录1");
    sms.setSmsName("emma");
    sms.setSmsNumber("1125444546");
    arrayList.add(sms);

}}public abstract class SmsRecord extends ListActivity
//implements OnItemClickListener, OnItemLongClickListener
{
//短信记录数组
protected  List<Sms> arrayList = new ArrayList<Sms>();
MyItemAdapter adapter  = null;

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState); RefreshData();
initialListView();
// refreshAdapter();
//IntentFilter filter = new IntentFilter();
//filter.addAction(PublicEnum.SMS_ACTION);
//registerReceiver(receiver, filter);
} public void initialListView() {  //List<Sms> mArrayListTmp = new ArrayList<Sms>();
 //mArrayListTmp = arrayList;

adapter= new MyItemAdapter(getApplicationContext());
adapter.notifyDataSetChanged();
setListAdapter(adapter);
// 将快捷菜单注册到界面控件上。
//registerForContextMenu(this.getListView()); //this.getListView().setOnCreateContextMenuListener(this);
}
@Override
    public void onDestroy()
    {
     //Activity被完全从系统内存中一次时调用。该方法被调用可能是因为人为直接调用onFinish()方法或者
     //系统觉定停止该Activity以释放资源
//unregisterReceiver(receiver);
super.onDestroy();
//refreshSmsThread.interrupt();
arrayList =null;
//mArrayListTmp=null;
    
    }
   
/**
 * 刷新当前界面arrayList数据
 */
protected abstract void RefreshData();
public class MyItemAdapter extends BaseAdapter { //private List<Sms> list;
private LayoutInflater mInflater;
private int position;
public int lastCheckPos = -1; public MyItemAdapter(Context context) { //this.list = list;
this.mInflater = LayoutInflater.from(context);
} @Override
public int getCount() {
//return list.size();
return arrayList.size();
} @Override
public Object getItem(int position) {
if (position < arrayList.size()) {
this.position = position;
return arrayList.get(position);
} else {
return null;
}
} @Override
public long getItemId(int position) {
if (position < arrayList.size()) {
this.position = position;
return arrayList.get(position).getSmsId();
} else {
return -1;
}
} public int getPosition() {
return this.position;
} @Override
public View getView(int position, View convertView, ViewGroup parent) { final Sms item = arrayList.get(position);
ItemViewHolder holder = null;
if (convertView == null) {
holder = new ItemViewHolder();
convertView = mInflater.inflate(R.layout.sms_record, null);
holder.myImageView = (ImageView) convertView
.findViewById(R.id.sms_record_image);
holder.nameTextView = (TextView) convertView
.findViewById(R.id.smsRecordNumberText);
holder.dateTextView = (TextView) convertView
.findViewById(R.id.smsRecordDateText);
holder.areaTextView = (TextView) convertView
.findViewById(R.id.smsRecordNumberAreaText);
holder.checkBox = (CheckBox) convertView
.findViewById(R.id.smsRecordCheckBox);
holder.reportTextView = (TextView) convertView
.findViewById(R.id.smsRecordReportText);
holder.contentTextView = (TextView) convertView
.findViewById(R.id.smsRecordContentText);
//holder.setOnClickListener();
convertView.setTag(holder);
} else {
holder = (ItemViewHolder) convertView.getTag();
}
String name = item.getSmsName();
if (name == null || name.equals(""))
holder.nameTextView.setText(item.getSmsNumber());
else
holder.nameTextView.setText(item.getSmsName());

holder.areaTextView.setText(item.getArea());
holder.reportTextView.setText(item.getSmsReport());
holder.contentTextView.setText(item.getSmsContent());
holder.checkBox.setChecked(item.isChecked());
holder.currCheckedindex = position; return convertView; } protected class ItemViewHolder {
public ImageView myImageView;
public TextView nameTextView;
public TextView dateTextView;
public TextView areaTextView;
public CheckBox checkBox; public TextView reportTextView;
public TextView contentTextView;
public int currCheckedindex;

}
}
}二、调用addPreferencesFromResource泄露public class SharePreMemoryLose extends PreferenceActivity
{ @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);

addPreferencesFromResource(R.xml.sms_forward_set);

    
//setContentView(R.layout.about_menu);
}
}