所以,在我用
完成扫描仪活动之后 btn_take_photo.setOnClickListener(new FloatingActionButton.OnClickListener() {
@Override
public void onClick(View view) {
String carde = cardnumberbox.getText().toString().trim();
if (carde.matches("")) {
Toast.makeText(getApplicationContext(), getString(R.string.Skan_Udfyld_Kort_Nummer), Toast.LENGTH_SHORT).show();
cardnumberbox.requestFocus();
return;
}
Intent i = new Intent(ScanActivity.this, CameraActivity.class);
i.putExtra("EXTRA_SESSION_ID", carde);
startActivity(i);
}
});
转到我的摄像头活动,这样我就可以拍摄一些照片然后带回去
public void btn_aprove2(View view) {
Intent i = new Intent(CameraActivity.this, ScanActivity.class);
String counts = count.getText().toString().trim();
i.putExtra("EXTRA_SESSION_IDs", counts);
String carde = cardnumberbox2.getText().toString().trim();
i.putExtra("EXTRA_SESSION_ID", carde);
startActivity(i);
finish();
再次扫描一下。我的扫描仪无法正常工作 但是,如果我然后按下后退按钮,它会再次返回到扫描活动而不是我的菜单,所以看起来扫描活动正在运行两次,其中只有一个是功能性的,但它在这里让我感到困惑
因为如果不按btn_aprove2
按钮而只是使用后退按钮
我得到完全相同的问题,但在这里我的扫描活动没有运行两次,因为当我按下后退按钮它只是带我回到菜单
从清单中删除我的屏幕方向(所以我可以旋转它) 我的扫描仪现在可以正常工作,但前提是我首先旋转到横向并将其旋转回potrait
我在日志中看到它只是在旋转时调用oncreate,只在恢复时暂停并按下按钮(startactivity / finnish)
我完全迷失了如何让它发挥作用。
on github使用wiki中的api演示和文档以及正在使用的thoose类
答案 0 :(得分:3)
如果您只是跳转到相机活动以获取某些数据,我建议您开始活动以获得结果(startActivityForResult)而不完成扫描仪活动。这将为您提供正确的后退堆栈(使用后退按钮从相机返回到扫描仪)。
除此之外你为什么要使用i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
?您正在开始一项新活动并完成旧活动。我不明白为什么真的需要这面旗帜。你的清单中的android:launchMode
是什么,你确定你知道FLAG_ACTIVITY_NEW_TASK
正在做什么,这是你想要的吗?
无论如何,根据您告诉我们的情况,您的示例看起来确实应该在不调用startActivityForResult()
的情况下使用finish()
: