好吧,所以我有点困惑/沮丧。
我有一个始终在运行的服务和一项活动。每次启动和关闭活动时,App内存或ram都会使用。
我在活动中所拥有的只是图像和搜索栏。
我需要做些什么来阻止它,因为它可以很快建立起来!
我也有很多吸气剂和二传手。如tv.getText()。toString();和bg.setBackgroundResource(R.drawable.icon);
因此,在我的onCreate中,它会为布局等启动ID ...每次创建活动时,使用的内存或内存都会显着增加。是复制资源还是其他什么?它以恒定的速度上升。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(android.view.Window.FEATURE_NO_TITLE);
setContentView(R.layout.lock_screen);
tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
//DATE & TIME STATS
DateLayout = (LinearLayout) findViewById(R.id.DateLayout);
curhour = (TextView) findViewById(R.id.hourText);
curmin = (TextView) findViewById(R.id.minText);
curmonth = (TextView) findViewById(R.id.monthText);
curday = (TextView) findViewById(R.id.dayText);
curactualday = (TextView) findViewById(R.id.actualdayText);
batt = (TextView) findViewById(R.id.batt);
//updateClock();
//PATHS & TARGETS
SliderUnlockPath = (ImageView) findViewById(R.id.slider_unlock_path);
SliderTextAnimation=(AnimationDrawable) SliderUnlockPath.getDrawable();
//SLIDER
seekbar = (SeekBar) findViewById(R.id.seekbar);
seekbar.setOnSeekBarChangeListener( new OnSeekBarChangeListener()
{
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){
// TODO Auto-generated method stub
}
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
//SliderUnlockPath.setBackgroundResource(R.drawable.lockscreen_slider_path_light);
SliderUnlockPath.setVisibility(ImageView.INVISIBLE);
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
//SliderUnlockPath.setBackgroundResource(R.drawable.lockscreen_slider_path);
//IF RIGHTMOST (UNLOCK ZONE)
int UnlockZone = seekbar.getProgress();
if (UnlockZone > 86) UnlockZone = 100; {
seekbar.setProgress(UnlockZone);
SliderUnlockPath.setVisibility(ImageView.INVISIBLE);
}
if (UnlockZone == 100) {
mHandler.removeCallbacks(mUpdateTimeTask);
finish();
}
//IF NOT RIGHTMOST
int ResetZone = seekbar.getProgress();
if (ResetZone < 86) ResetZone = 0; {
seekbar.setProgress(ResetZone);
SliderUnlockPath.setVisibility(ImageView.INVISIBLE);
SliderUnlockPath.setVisibility(ImageView.VISIBLE);
//SliderUnlockPath.setBackgroundResource(R.drawable.lockscreen_slider_path);
}
}
});
//WIDGETZONE VIEWFLIPPER
vf = (ViewFlipper) findViewById(R.id.layoutswitcher);
//MUSIC
//MusicLayout = (LinearLayout) findViewById(R.id.MusicLayout);
//MusicInfoLayout = (LinearLayout) findViewById(R.id.MusicInfoLayout);
//UpdateMusicOnStart();
//WEATHER
WeatherTop = (ImageView) findViewById(R.id.WeatherTop);
WeatherTopAnimation();
iconCurrent = (ImageView)findViewById(R.id.iconcurrent);
CurrentLocation = (TextView)findViewById(R.id.CurrentLocation);
CurrentHigh = (TextView)findViewById(R.id.CurrentHigh);
CurrentCondition = (TextView)findViewById(R.id.CurrentCondition);
//CurrentLow = (TextView)findViewById(R.id.CurrentLow);
//Get Location from Main Panel
CurrentLocation.setText(place);
//STRINGS FOR TEXT INFO
//String weatherString = QueryGoogleWeather(place);
//Document weatherDoc = convertStringToDocument(weatherString);
/*if(parseGoogleWeather(weatherDoc)){
//Display Result
String c = currentConditions.condition
+ currentConditions.temp_f
+ currentConditions.temp_c;*/
//+ currentConditions.humidity
//+ currentConditions.wind_condition;
//textCurrent.setText(c);
/*textInfo.setText("city: " + forecastInformation.city + "\n"
+ "postal code: " + forecastInformation.postal_code + "\n"
+ "forecast date: " + forecastInformation.forecast_date + "\n"
+ "current date time: " + forecastInformation.current_date_time + "\n"
+ "unit: " + forecastInformation.unit_system);*/
//CurrentLocation.setText(forecastInformation.city);
//if (iLockerMain.TEMPSCALE.isChecked()) {
//CurrentHigh.setText(currentConditions.temp_f+"°"+"F");
//} else {
//CurrentHigh.setText(currentConditions.temp_c+"°"+"C");
//}
//CurrentCondition.setText(currentConditions.condition);
//Bitmap bm = LoadIcon(currentConditions.icon);
//iconCurrent.setImageBitmap(bm);
/*if (CurrentCondition.getText().toString().equals("Overcast")) {
iconCurrent.setBackgroundResource(R.drawable.cloudy3small);
} else if (CurrentCondition.getText().toString().equals("Light rain")) {
iconCurrent.setBackgroundResource(R.drawable.light_rainsmall);
} else if (CurrentCondition.getText().toString().equals("Light snow")) {
iconCurrent.setBackgroundResource(R.drawable.snow3small);
}*/
mHandler = new Handler();
}
@Override
public void onResume(){
//updateClock();
mHandler.removeCallbacks(mUpdateTimeTask);
mHandler.postDelayed(mUpdateTimeTask, 100);
super.onResume();
}
@Override
public void onPause(){
//unregisterReceiver(mReceiver);
mHandler.removeCallbacks(mUpdateTimeTask);
super.onPause();
}
答案 0 :(得分:0)
您是否在onDestroy()中释放所有分配?