android - 如果 Activity 已经打开,请避免再次打开 Activity
问题描述
我使用菜单栏打开了相机活动。但是在它打开后,如果我单击菜单栏,它会在其顶部打开。当我按下返回按钮时,它会显示两次相机活动。
我可以使用任何标志吗?
@Override
public void onBackPressed() {
DrawerLayout drawer = findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public void onResume() {
super.onResume();
mScannerView.setResultHandler(this);
mScannerView.startCamera();
}
@Override
public void onPause() {
super.onPause();
mScannerView.stopCamera();
}
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
if (item.getItemId() == R.id.nav_barcode) {
Intent i = new Intent(this, Scanner.class);
startActivityForResult(i, 1);
}
}
解决方案
android:launchMode="singleTop"
在清单文件中添加您的相机活动。
推荐阅读
- amazon-web-services - AWS Terraform 向目标组注册目标时出错
- python - 如何使用 kivymd 上的按钮从列表小部件中删除项目
- java - Maven:项目 A 不尊重项目 B 的排除
- react-bootstrap-typeahead - 如何使用 react-bootstrap-typeahead 更改占位符文本的颜色?
- javascript - 用于编辑的 HTML 和 jQuery 模态
- android - 来自 Youtube 与 Ionic 的共享菜单的 Web Intent
- c# - 获取一个类型的所有控件,包括嵌套容器
- python - 在读取 txt 文件行时。我不能“追加列表”或“更新字典”为什么?
- ios - 难以解析来自 API 调用的响应
- go - 你可以有多个带有 github 操作的工作目录吗?