【问题标题】:Back button not working after taking picture拍照后返回按钮不起作用
【发布时间】:2015-09-15 17:21:10
【问题描述】:

我正在尝试实施我找到的解决方案 HERE 但是在我点击捕获后,后退按钮没有完成活动。有没有办法调用

finish();

在函数内按下后退按钮时

private void capture() {
    mCamera.takePicture(null, null, null, new Camera.PictureCallback() {
        final float bearing = degree;

        @Override
        public void onPictureTaken(byte[] data, Camera camera) {
            latitude = mGpsLocationTracker.getLatitude();
            longitude = mGpsLocationTracker.getLongitude();

            Toast.makeText(getApplicationContext(), "Picture Taken",
                    Toast.LENGTH_SHORT).show();

            Toast.makeText(getApplicationContext(), "" +
                    latitude + ", " + longitude, Toast.LENGTH_SHORT).show();

            Toast.makeText(getApplicationContext(), "" + bearing, Toast.LENGTH_SHORT).show();

            Intent intent = new Intent();
            intent.putExtra("image_arr", data);
            setResult(RESULT_OK, intent);
            camera.stopPreview();
            if (camera != null) {
                camera.release();
                mCamera = null;
            }
            finish();
        }
    });
}

@Override
public void onBackPressed() {
    super.onBackPressed();  
    finish();
}

【问题讨论】:

  • 捕获后显示什么应用??
  • 它只是在视图中显示捕获的图像
  • 你是否尝试过覆盖 backbuttonPressed 方法??
  • 我在函数之外覆盖了那个函数。我编辑了问题以包含该代码

标签: android android-camera


【解决方案1】:

好吧,不要尝试finish();,而是尝试对所需的activity进行意图:

@Override
public void onBackPressed() {
    super.onBackPressed();
    startActivity(new Intent(YourActivity, DesiredActivity));
    finish();
}

【讨论】:

  • 成功了!你知道为什么常规的后退按钮不起作用吗?我只是好奇
  • 抱歉,我对此没有任何解释,但可能是因为您必须在终止当前活动之前指定要执行的活动。
【解决方案2】:

尝试在您的活动类中覆盖 onKey 方法

@Override
public boolean onKey(View v, int keyCode, KeyEvent event) 
{   if (event.getAction() == KeyEvent.ACTION_UP) 
    {   finish();
    }
    return false;
};

【讨论】:

  • onBackPressed() 函数没有覆盖同样的东西吗?当我添加该代码时,我收到一个错误,它不会覆盖超类中的方法
  • 在你的 onBackPressed 方法中添加这个:super.onBackPressed();
  • 在finish()之前;方法
  • 我添加了它仍然没有区别
  • 尝试放一条 toast 消息或登录 onBackPressed() 方法来检查它是否真的有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-31
  • 2017-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多