Не открывайте активность снова, если она уже открыта - PullRequest
0 голосов
/ 24 июня 2019

Я открыл активность камеры, используя строку меню. Но после того, как он открывается, если я нажимаю на строку меню, он открывается поверх него. И когда я нажимаю кнопку «Назад», она показывает активность камеры дважды.

Можно ли использовать какой-либо флаг?

@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 ]

1 голос
/ 24 июня 2019

Добавьте android:launchMode="singleTop" для вашей камеры в файле манифеста.

0 голосов
/ 24 июня 2019

Используйте флаг Intent.FLAG_ACTIVITY_SINGLE_TOP при запуске деятельности.

...