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多次加载bitmap后,提示内存溢出。可以在onDestroy中释放内存资源
最新推荐文章于 2024-02-10 07:00:00 发布