如果活动已经打开,请避免重新打开活动

时间:2019-06-24 10:31:27

标签: android navigation-drawer

我使用菜单栏打开了相机活动。但是,如果我单击菜单栏,它将在它打开之后打开。当我按下后退按钮时,它会显示两次相机活动。

我可以使用任何标志吗?

@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);
        } 
}

2 个答案:

答案 0 :(得分:1)

在清单文件中为相机活动添加android:launchMode="singleTop"

答案 1 :(得分:0)

开始活动时使用标志Intent.FLAG_ACTIVITY_SINGLE_TOP