这是我的小程序,用于测试日期选择器对话框。
MainActivity.java
public class MainActivity extends FragmentActivity implements OnClickListener {
Button bSelectDate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bSelectDate = (Button) findViewById(R.id.bSelectDate);
bSelectDate.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
DateDialogFragment date = new DateDialogFragment();
date.setCallBack(onDate);
date.show(getSupportFragmentManager(), "Date Picker");
}
OnDateSetListener onDate = new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, monthOfYear);
cal.set(Calendar.DAY_OF_MONTH, dayOfMonth);
Toast.makeText(MainActivity.this, ""+String.valueOf(cal.getTimeInMillis()), Toast.LENGTH_LONG).show();
}
};
}
DateDialogFragment.java
public class DateDialogFragment extends DialogFragment{
Calendar cal;
OnDateSetListener onDateSet;
private int year,month,day;
public void setCallBack(OnDateSetListener onDateSet)
{
this.onDateSet = onDateSet;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// TODO Auto-generated method stub
Calendar cal = Calendar.getInstance();
year=cal.get(Calendar.YEAR);
month=cal.get(Calendar.MONTH);
day=cal.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(), onDateSet, year, month, day);
}
}
程序正常运行,但是问题是,一旦按下按钮,LogCat就会报告许多垃圾回收的调用,例如已释放的GC_CONCURRENT,已释放的GC_FOR_ALLOC,GREF已增加到201。等等。这引起了我的注意,是否存在我可以用这个小程序减少垃圾收集的数量。
这不是错误,而是垃圾收集器已运行的信息。
如果您看到很多这样的内容,则可能意味着您分配的内存过多或内存不足。您应该尝试提高程序的内存性能。
有关调查Android中的RAM消耗的很好的源信息:
https://developer.android.com/tools/debugging/debugging-memory.html
还有一个有关在Android中管理内存消耗的一般策略的文档:
http://developer.android.com/training/articles/memory.html
Android DDMS是eclipse中Android开发工具的一部分,具有非常有用的工具,可用于性能分析和内存分配跟踪。
下面的屏幕截图突出显示了其中一些工具(全部在DDMS下),一些工具需要通过单击左侧面板中的相应按钮(以红色突出显示)来激活,然后您可以在右侧面板中看到值(某些带有图形)通过选择要观看的标签(以蓝色突出显示)
堆和分配跟踪器在您的情况下将非常有用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句