Android多次加载bitmap后,提示内存溢出。可以在onDestroy中释放内存资源
16lz
2021-01-23
package com.example.suzyulin.emergency;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Color;import android.os.Handler;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.TextView;import com.common.AppData;import com.common.Common;import com.common.UploadUtil1;import org.json.JSONArray;import org.json.JSONObject;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.util.HashMap;import java.util.Map;public class UploadFileActivity extends AppCompatActivity { private static final String TAG = "UploadFileActivity"; ImageView imageViewResult ; TextView tvUploadStatus; Button btnReturn; Bitmap bitmap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_upload_file); imageViewResult = (ImageView)findViewById(R.id.ivCameraResult); btnReturn = (Button)findViewById(R.id.btnReturn); tvUploadStatus = (TextView)findViewById(R.id.tvUploadStatus); String PhotoFileName = AppData.getPhotoFileName(this); try { if (!PhotoFileName.isEmpty()) { bitmap = getLoacalBitmap(PhotoFileName); imageViewResult.setImageBitmap(bitmap); handlerUpdateUI.sendEmptyMessageDelayed(0, 500); } else { tvUploadStatus.setText("照片读取错误!"); } }catch (Exception e){ Log.d(TAG, "onCreate: Load bitmap error #################"+e.getMessage()); } } protected void onStop(){ super.onStop(); if (bitmap != null) { //&& bitmap.isRecycled() == false bitmap.recycle(); System.gc(); Log.d(TAG, "onStop: bitmap.recycle ^^^^^^^^^^^^^^^^^^^^^^^^^"); } } protected void onDestroy(){ super.onDestroy(); if (bitmap != null) { //&& bitmap.isRecycled() == false bitmap.recycle(); System.gc(); Log.d(TAG, "onDestroy: bitmap.recycle ^^^^^^^^^^^^^^^^^^^^^^^^^"); } } public static Bitmap getLoacalBitmap(String url) { try { FileInputStream fis = new FileInputStream(url); return BitmapFactory.decodeStream(fis); }catch (FileNotFoundException e) { e.printStackTrace(); Log.d(TAG, "getLoacalBitmap: ---------> " + e.getMessage()); return null; } } }}
更多相关文章
- Android 横向ScrollView照片浏览器实现
- Android studio Gradle home can not be found - Android Studio
- 安卓,rebuild apk错误解决
- Android开发错误Unable to execute dex: Multiple dex files def
- 申请Android Maps API Key,以及出现的错误
- Android 错误案例
- Android Studio:xxx is not an enclosing class 错误的解决方法