Я разрабатываю приложение, которое нуждается в галерее изображений. Я нахожусь в точке, где у меня все изображения отображаются в виде сетки. когда я прикасаюсь к изображению, я хочу, чтобы он открывал действие с помощью полноэкранного изображения коснутого изображения, которое также работает, но когда я возвращаюсь в сетку и открываю другое изображение, потребление памяти продолжает расти. Я попробовал установить изображение функции на null
, Bitmap.recycle()
и вызвал finish()
на активность, ничто не останавливает потребление памяти, когда я открываю другое изображение.Android удаляет растровое изображение из памяти, когда уходит активность
Открыть Detail активность
Intent intent = new Intent(MainActivity.this, DetailActivity.class);
intent.putExtra("image", adapter.file[position].getPath());
//Start details activity
startActivity(intent);
Feature Image Активность
public class DetailActivity extends AppCompatActivity {
private Intent intent = getIntent();
private Bitmap featureImage;
private ImageView featureView;
private final String TAG ="Image Detail --";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Bundle extras = getIntent().getExtras();
final String imgPath = extras.getString("image");
final BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
bitmapOptions.inDensity = 2;
bitmapOptions.inTargetDensity = 1;
featureImage = BitmapFactory.decodeFile(imgPath, bitmapOptions);
featureView = (ImageView) findViewById(R.id.featureImageView);
featureView.setImageBitmap(featureImage);
}
@Override
protected void onPause(){
super.onPause();
//featureImage = null;
//featureView.setImageBitmap(null);
//featureImage.recycle();
this.finish();
}
}
память продолжает грог до около 40Мб, а затем падает до 32 МБ и циклов throgh в этой модели.
Любые подсказки/предложения приветствуются.
кажется вполне нормальным. Объекты собирают мусор по мере необходимости. Я бы поставил вопрос о том, чтобы позвонить в Finish в свою OnPause, но как простое действие, такое как вращение вашего устройства или получение телефонного звонка, завершит эту операцию. – Kuffs
Спасибо @ Kuffs. Итак, вы думаете, что нет проблем? также я рассмотрю проблему 'onPause(). Я не считал, что, однако, мое приложение является носителем только из-за других функций, и я предпочитаю, чтобы возврат на домашний экран отклонялся от индивидуального изображения после нажатия кнопки «домой» на устройстве. – Lonergan6275