如果 activity 已经打开,请避免再次打开 Activity

Avoid opening Activity over again if the activity is already opened

我使用菜单栏打开了相机 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);
        } 
}

在 Manifest 文件中为您的相机 activity 添加 android:launchMode="singleTop"

启动时使用标志 Intent.FLAG_ACTIVITY_SINGLE_TOP activity。