本人在做关于安卓拍照的过程中,通过serResult返回一个字符串然后finish(),当程序第一次
调用的时候,可以正常返回,但是当再次启动拍照之后,返回的时候finish没有执行onpause()
方法。是通过CameraSurfaceView 的方式进行预览,但是没有回调SurfaceHolder.Callback 中的
surfaceDestroyed()方法。两次执行前日志一样,但是两次调用到setResult()之后就不一样了。日志是:
------------------------------------------------首次启动activity-
04-04 13:01:25.447 9239-9239/com.gas.gasmeter I/cameraTag: onDraw...
04-04 13:01:25.582 9239-9239/com.gas.gasmeter I/cameraTag: click...
04-04 13:01:25.582 9239-9239/com.gas.gasmeter I/cameraTag: 保存完成...
04-04 13:01:25.583 9239-9239/com.gas.gasmeter I/cameraTag: Screen---Width = 1080 Height = 1920 densityDpi = 420
04-04 13:01:25.583 9239-9239/com.gas.gasmeter I/cameraTag: Screen---Width = 1080 Height = 1920 densityDpi = 420
04-04 13:01:25.597 9239-9239/com.gas.gasmeter I/cameraTag: 矩形拍照尺寸:width = 793 h = 263
04-04 13:01:26.336 9239-9239/com.gas.gasmeter I/cameraTag: myJpegCallback:onPictureTaken...
04-04 13:01:26.639 9239-9239/com.gas.gasmeter I/cameraTag: rotaBitmap.getWidth() = 1088 rotaBitmap.getHeight() = 1920
04-04 13:01:26.640 9239-9239/com.gas.gasmeter I/cameraTag: 停止预览,释放Camera
04-04 13:01:26.702 9239-9239/com.gas.gasmeter I/cameraTag: context------------------com.gas.gasmeter.activity.main.CameraActivity@a84fd11---------------camera:android.hardware.Camera@be11e76
04-04 13:01:26.703 9239-9239/com.gas.gasmeter D/cameraTag: 初始化TessBaseApi
04-04 13:01:28.431 9239-9239/com.gas.gasmeter D/cameraTag: 语言包文件夹地址为: /data/user/0/com.gas.gasmeter/files/tesseract
04-04 13:01:28.878 9239-9239/com.gas.gasmeter D/cameraTag: 初始化TessEngine结束
04-04 13:01:28.878 9239-9239/com.gas.gasmeter D/cameraTag: Running inspection on bitmap
04-04 13:01:28.904 9239-9239/com.gas.gasmeter D/cameraTag: Confidence values: 95
04-04 13:01:28.914 9239-9239/com.gas.gasmeter I/cameraTag: 识别输出为:
04-04 13:01:28.915 9239-9239/com.gas.gasmeter I/cameraTag: 本次识别输出为:
04-04 13:01:28.915 9239-9239/com.gas.gasmeter I/cameraTag: ---------------------------------setResult为Intent { FromType=0xffffffff (has extras) }
04-04 13:01:29.260 9239-9239/com.gas.gasmeter I/cameraTag: ---------------------------------onPause
04-04 13:01:29.260 9239-9239/com.gas.gasmeter I/cameraTag: 是否已经结束?true
04-04 13:01:29.261 9239-9239/com.gas.gasmeter I/cameraTag: ---------------------------------onPause
04-04 13:01:29.274 9239-9239/com.gas.gasmeter I/cameraTag: 识别的结果是:
04-04 13:01:29.318 9239-9239/com.gas.gasmeter E/cameraTag: 识别结果为空,识别失败!
04-04 13:01:29.318 9239-9239/com.gas.gasmeter I/cameraTag: 裁剪之后保存的路径/storage/emulated/0/DCIM
04-04 13:01:29.319 9239-9239/com.gas.gasmeter I/cameraTag: autoReportActivity onResume().............
04-04 13:01:30.526 9239-9239/com.gas.gasmeter I/cameraTag: surfaceDestroyed...
04-04 13:01:30.560 9239-9239/com.gas.gasmeter I/cameraTag: onStop......................
04-04 13:01:30.560 9239-9239/com.gas.gasmeter I/cameraTag: onDestroy......................-------------------------------------------------第二次以及之后启动activity
04-04 13:02:14.742 9239-9239/com.gas.gasmeter I/cameraTag: onDraw...
04-04 13:02:14.860 9239-9239/com.gas.gasmeter I/cameraTag: click...
04-04 13:02:14.860 9239-9239/com.gas.gasmeter I/cameraTag: 保存完成...
04-04 13:02:14.860 9239-9239/com.gas.gasmeter I/cameraTag: Screen---Width = 1080 Height = 1920 densityDpi = 420
04-04 13:02:14.861 9239-9239/com.gas.gasmeter I/cameraTag: Screen---Width = 1080 Height = 1920 densityDpi = 420
04-04 13:02:14.874 9239-9239/com.gas.gasmeter I/cameraTag: 矩形拍照尺寸:width = 793 h = 263
04-04 13:02:15.549 9239-9239/com.gas.gasmeter I/cameraTag: myJpegCallback:onPictureTaken...
04-04 13:02:15.736 9239-9239/com.gas.gasmeter I/cameraTag: rotaBitmap.getWidth() = 1088 rotaBitmap.getHeight() = 1920
04-04 13:02:15.737 9239-9239/com.gas.gasmeter I/cameraTag: 停止预览,释放Camera
04-04 13:02:15.817 9239-9239/com.gas.gasmeter I/cameraTag: context------------------null---------------camera:android.hardware.Camera@2dc7c94
04-04 13:02:15.817 9239-9239/com.gas.gasmeter D/cameraTag: 初始化TessBaseApi
04-04 13:02:15.817 9239-9239/com.gas.gasmeter D/cameraTag: 语言包文件夹地址为: /data/user/0/com.gas.gasmeter/files/tesseract
04-04 13:02:16.215 9239-9239/com.gas.gasmeter D/cameraTag: 初始化TessEngine结束
04-04 13:02:16.215 9239-9239/com.gas.gasmeter D/cameraTag: Running inspection on bitmap
04-04 13:02:16.280 9239-9239/com.gas.gasmeter D/cameraTag: Confidence values: 95
04-04 13:02:16.290 9239-9239/com.gas.gasmeter I/cameraTag: 识别输出为:
04-04 13:02:16.291 9239-9239/com.gas.gasmeter I/cameraTag: 本次识别输出为:
04-04 13:02:16.291 9239-9239/com.gas.gasmeter I/cameraTag: ---------------------------------setResult为Intent { FromType=0xffffffff (has extras) }
04-04 13:02:16.603 9239-9239/com.gas.gasmeter I/cameraTag: ---------------------------------onPause
04-04 13:02:16.603 9239-9239/com.gas.gasmeter I/cameraTag: 是否已经结束?true```还请大神能给出解答
调用的时候,可以正常返回,但是当再次启动拍照之后,返回的时候finish没有执行onpause()
方法。是通过CameraSurfaceView 的方式进行预览,但是没有回调SurfaceHolder.Callback 中的
surfaceDestroyed()方法。两次执行前日志一样,但是两次调用到setResult()之后就不一样了。日志是:
------------------------------------------------首次启动activity-
04-04 13:01:25.447 9239-9239/com.gas.gasmeter I/cameraTag: onDraw...
04-04 13:01:25.582 9239-9239/com.gas.gasmeter I/cameraTag: click...
04-04 13:01:25.582 9239-9239/com.gas.gasmeter I/cameraTag: 保存完成...
04-04 13:01:25.583 9239-9239/com.gas.gasmeter I/cameraTag: Screen---Width = 1080 Height = 1920 densityDpi = 420
04-04 13:01:25.583 9239-9239/com.gas.gasmeter I/cameraTag: Screen---Width = 1080 Height = 1920 densityDpi = 420
04-04 13:01:25.597 9239-9239/com.gas.gasmeter I/cameraTag: 矩形拍照尺寸:width = 793 h = 263
04-04 13:01:26.336 9239-9239/com.gas.gasmeter I/cameraTag: myJpegCallback:onPictureTaken...
04-04 13:01:26.639 9239-9239/com.gas.gasmeter I/cameraTag: rotaBitmap.getWidth() = 1088 rotaBitmap.getHeight() = 1920
04-04 13:01:26.640 9239-9239/com.gas.gasmeter I/cameraTag: 停止预览,释放Camera
04-04 13:01:26.702 9239-9239/com.gas.gasmeter I/cameraTag: context------------------com.gas.gasmeter.activity.main.CameraActivity@a84fd11---------------camera:android.hardware.Camera@be11e76
04-04 13:01:26.703 9239-9239/com.gas.gasmeter D/cameraTag: 初始化TessBaseApi
04-04 13:01:28.431 9239-9239/com.gas.gasmeter D/cameraTag: 语言包文件夹地址为: /data/user/0/com.gas.gasmeter/files/tesseract
04-04 13:01:28.878 9239-9239/com.gas.gasmeter D/cameraTag: 初始化TessEngine结束
04-04 13:01:28.878 9239-9239/com.gas.gasmeter D/cameraTag: Running inspection on bitmap
04-04 13:01:28.904 9239-9239/com.gas.gasmeter D/cameraTag: Confidence values: 95
04-04 13:01:28.914 9239-9239/com.gas.gasmeter I/cameraTag: 识别输出为:
04-04 13:01:28.915 9239-9239/com.gas.gasmeter I/cameraTag: 本次识别输出为:
04-04 13:01:28.915 9239-9239/com.gas.gasmeter I/cameraTag: ---------------------------------setResult为Intent { FromType=0xffffffff (has extras) }
04-04 13:01:29.260 9239-9239/com.gas.gasmeter I/cameraTag: ---------------------------------onPause
04-04 13:01:29.260 9239-9239/com.gas.gasmeter I/cameraTag: 是否已经结束?true
04-04 13:01:29.261 9239-9239/com.gas.gasmeter I/cameraTag: ---------------------------------onPause
04-04 13:01:29.274 9239-9239/com.gas.gasmeter I/cameraTag: 识别的结果是:
04-04 13:01:29.318 9239-9239/com.gas.gasmeter E/cameraTag: 识别结果为空,识别失败!
04-04 13:01:29.318 9239-9239/com.gas.gasmeter I/cameraTag: 裁剪之后保存的路径/storage/emulated/0/DCIM
04-04 13:01:29.319 9239-9239/com.gas.gasmeter I/cameraTag: autoReportActivity onResume().............
04-04 13:01:30.526 9239-9239/com.gas.gasmeter I/cameraTag: surfaceDestroyed...
04-04 13:01:30.560 9239-9239/com.gas.gasmeter I/cameraTag: onStop......................
04-04 13:01:30.560 9239-9239/com.gas.gasmeter I/cameraTag: onDestroy......................-------------------------------------------------第二次以及之后启动activity
04-04 13:02:14.742 9239-9239/com.gas.gasmeter I/cameraTag: onDraw...
04-04 13:02:14.860 9239-9239/com.gas.gasmeter I/cameraTag: click...
04-04 13:02:14.860 9239-9239/com.gas.gasmeter I/cameraTag: 保存完成...
04-04 13:02:14.860 9239-9239/com.gas.gasmeter I/cameraTag: Screen---Width = 1080 Height = 1920 densityDpi = 420
04-04 13:02:14.861 9239-9239/com.gas.gasmeter I/cameraTag: Screen---Width = 1080 Height = 1920 densityDpi = 420
04-04 13:02:14.874 9239-9239/com.gas.gasmeter I/cameraTag: 矩形拍照尺寸:width = 793 h = 263
04-04 13:02:15.549 9239-9239/com.gas.gasmeter I/cameraTag: myJpegCallback:onPictureTaken...
04-04 13:02:15.736 9239-9239/com.gas.gasmeter I/cameraTag: rotaBitmap.getWidth() = 1088 rotaBitmap.getHeight() = 1920
04-04 13:02:15.737 9239-9239/com.gas.gasmeter I/cameraTag: 停止预览,释放Camera
04-04 13:02:15.817 9239-9239/com.gas.gasmeter I/cameraTag: context------------------null---------------camera:android.hardware.Camera@2dc7c94
04-04 13:02:15.817 9239-9239/com.gas.gasmeter D/cameraTag: 初始化TessBaseApi
04-04 13:02:15.817 9239-9239/com.gas.gasmeter D/cameraTag: 语言包文件夹地址为: /data/user/0/com.gas.gasmeter/files/tesseract
04-04 13:02:16.215 9239-9239/com.gas.gasmeter D/cameraTag: 初始化TessEngine结束
04-04 13:02:16.215 9239-9239/com.gas.gasmeter D/cameraTag: Running inspection on bitmap
04-04 13:02:16.280 9239-9239/com.gas.gasmeter D/cameraTag: Confidence values: 95
04-04 13:02:16.290 9239-9239/com.gas.gasmeter I/cameraTag: 识别输出为:
04-04 13:02:16.291 9239-9239/com.gas.gasmeter I/cameraTag: 本次识别输出为:
04-04 13:02:16.291 9239-9239/com.gas.gasmeter I/cameraTag: ---------------------------------setResult为Intent { FromType=0xffffffff (has extras) }
04-04 13:02:16.603 9239-9239/com.gas.gasmeter I/cameraTag: ---------------------------------onPause
04-04 13:02:16.603 9239-9239/com.gas.gasmeter I/cameraTag: 是否已经结束?true```还请大神能给出解答
public void endActivity(Bitmap bitmap) {
TessEngine tessEngine = new TessEngine(this);
String text = tessEngine.detectText(bitmap);
Intent intent = new Intent();
intent.putExtra("recognize_back", text);
Log.i(AppStaticData.TAG, "本次识别输出为:" + text);
setResult(Activity.RESULT_OK, intent);
Log.i(AppStaticData.TAG, "---------------------------------setResult为" + intent);
finish();
Log.i(AppStaticData.TAG, this + "是否已经结束?" + isFinishing()); }
public void endActivity(Bitmap bitmap) {
TessEngine tessEngine = new TessEngine(this);
String text = tessEngine.detectText(bitmap);
Intent intent = new Intent();
intent.putExtra("recognize_back", text);
Log.i(AppStaticData.TAG, "本次识别输出为:" + text);
setResult(Activity.RESULT_OK, intent);
Log.i(AppStaticData.TAG, "---------------------------------setResult为" + intent);
finish();
Log.i(AppStaticData.TAG, this + "是否已经结束?" + isFinishing()); }
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
switch (requestCode) {
case AppStaticData.CAMERA_RESULT_CODE:
if (data != null) {
String recognizeBack = data.getStringExtra("recognize_back");
Log.i(AppStaticData.TAG,"识别的结果是:"+recognizeBack);
recognizePicCallback(recognizeBack);
}
break;
default: break;
}
}
}