Почему Android App - перезапускается, когда приложение останавливается из Android Studio? - PullRequest
0 голосов
/ 27 мая 2020

Я новичок в разработке Android, и я разрабатываю приложение для сканирования штрих-кода с помощью API Google Vision. В приложении у меня есть три экрана Spla sh Screen, Main Screen с двумя фрагментами (Scan & History) и Scanned Result. Из фрагмента сканирования я открываю действие под названием «ScannedResult», как только приложение просканировало штрих-код, чтобы показать результат.

Теперь проблема в том, когда я запускаю приложение из Android Studio на устройство .

[Сценарий № 0] (Правильный случай остановки приложения на главном экране действий)

  1. Запустить приложение
  2. Spla sh Экран -> Главный экран
  3. Показывает фрагмент сканирования и запускает успешный поток
  4. Теперь ОСТАНОВИТЕ приложение из Android Studio.
  5. Приложение остановлено

[Сценарий № 1] (Но из ScannedResult приложение останавливается и запускается снова, почему?)

  1. Запустить приложение
  2. Spla sh Экран -> Главный экран
  3. Показывает фрагмент сканирования и запускает успешный поток
  4. Теперь отсканируйте штрих-код или QR-код, затем откройте ScannedResult (действие).
  5. Теперь, ОСТАНОВИТЕ приложение из Android Studio.
  6. Приложение остановлено и показывает черный экран
  7. Приложение снова ЗАПУСКАЕТСЯ и показывает главный экран (Почему оно снова запускается? Я хочу остановить приложение в этом случае).

Здесь я подозреваю, что что-то не так. В идеале это нужно прекратить. Пожалуйста, помогите определить, где я делаю ошибку в приложении.

enter image description here

Вот манифест. xml файл

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.myapp.powertools.barcodescan">

    <application
        android:allowBackup="false"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".CreatePaypalUrl"
            android:parentActivityName=".MainActivity"></activity>
        <activity
            android:name=".CreateVcardForm"
            android:parentActivityName=".MainActivity" />
        <activity
            android:name=".CreateLocationForm"
            android:parentActivityName=".MainActivity" />
        <activity
            android:name=".CreateWifiForm"
            android:parentActivityName=".MainActivity" />
        <activity
            android:name=".CreateEventForm"
            android:parentActivityName=".MainActivity" />
        <activity
            android:name=".CreateSmsForm"
            android:parentActivityName=".MainActivity" />
        <activity
            android:name=".CreateEmailForm"
            android:parentActivityName=".MainActivity" />
        <activity
            android:name=".CreateTelephoneForm"
            android:parentActivityName=".MainActivity" />
        <activity
            android:name=".CreateWebsiteForm"
            android:parentActivityName=".MainActivity" />
        <activity android:name=".Main2Activity" />
        <activity
            android:name=".GenerateQrCode"
            android:parentActivityName=".MainActivity" />
        <activity
            android:name=".CreateTextForm"
            android:parentActivityName=".MainActivity" />
        <activity
            android:name=".ScannedResult"
            android:parentActivityName=".MainActivity" />


        <activity
            android:name=".SplashScreen"
            android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity
            android:name=".MainActivity"
            android:theme="@style/AppTheme.NoActionBar" />


        <meta-data
            android:name="com.google.android.gms.vision.DEPENDENCIES"
            android:value="barcode" />
    </application>

    <uses-feature android:name="android.hardware.camera.front" android:required="false" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

</manifest>

Сканирование. java файл

 barcodeDetector.setProcessor(new Detector.Processor<Barcode>() {
                @Override
                public void release() {

                }

                @Override
                public void receiveDetections(Detector.Detections<Barcode> detections) {
                    final SparseArray<Barcode> qrCodes = detections.getDetectedItems();

                    if (qrCodes.size() > 0) {
                        if (isScanned == false) {
                            barcodeDetector.release();
                            isScanned = true;

                            String dataType = getBarcodeType(qrCodes.valueAt(0));
                            String dataValue = qrCodes.valueAt(0).displayValue;
                            String rawValue = qrCodes.valueAt(0).rawValue;

                            Intent intentScannedResult = new Intent(getActivity(), ScannedResult.class);
                            intentScannedResult.putExtra("barcode_raw_value", rawValue);
                            intentScannedResult.putExtra("barcode_value", dataValue);
                            intentScannedResult.putExtra("barcode_type", dataType);
                            intentScannedResult.putExtra("is_scanner", "1");
                            startActivity(intentScannedResult);
                        }
                    }
                }
            });


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...