Активность открывается дважды

в моем приложении 3 страницы

1-всплеск

2-логин

3-OTPстраница

На странице-заставке те же значения отправляются на страницу входа с использованием метода putextra. но страница входа открывается дважды, поэтому при добавлении кнопки возврата для страницы входа в System.exit(0) снова откроется, поэтому я добавляю android:launchMode = "singleTask" в манифест, после добавления этого значения передачи строки меняется нерегулярно, что мне делать ... есть ли другой способ предотвратить повторное создание активности

код начала действия

@Override
protected void onResume() {
    super.onResume();
    // The first time mTimeBeforeDelay will be 0.
    long gapTime = System.currentTimeMillis() - mTimeBeforeDelay;
    if (gapTime > SPLASH_SCREEN_MS) {
        gapTime = SPLASH_SCREEN_MS;
    }
    mSplashHandler.postDelayed(new Runnable() {
        @Override
        public void run() {
            if (sharedPreferences.getBoolean("first_time", true)) {
                if (isConnectingToInternet()) {
                    frstrequest();
                } else {
                    ViewDialog1 alert = new ViewDialog1();
                    alert.showDialog(Splash.this, "Make Sure Internet is Connected", R.drawable.no_internet);
                }


            } else {

                Intent i = new Intent(getApplicationContext(), ApplockActivity.class);
                startActivity(i);
                overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit);
                Splash.this.finish();


            }
        }
    }, gapTime);
    // Save the time before the delay.
    mTimeBeforeDelay = System.currentTimeMillis();
}

@Override
protected void onPause() {
    super.onPause();
    mSplashHandler.removeCallbacksAndMessages(null);
}

манифест

  <application
        android:allowBackup = "true"
        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 = ".Splash"


            android:screenOrientation = "portrait">



        </activity>
        <activity
            android:name = ".LoginActivity"
           android:noHistory = "true"
            android:screenOrientation = "portrait">
        </activity>
        <activity

Где твой код?

AskNilesh 02.05.2018 09:20

Это другое дело, android: launchMode = "singleTask" Сначала вы должны указать свой код в вопросе о том, как вы запускаете свою Activity.

Vishal Chhodwani 02.05.2018 09:21

Разместите свой код, чтобы все могли его увидеть.

Manish 02.05.2018 09:22

поделитесь своим файлом манифеста

Sandeep Sankla 02.05.2018 09:27
1
4
120
1

Ответы 1

Если ваша активность вызывается дважды из любого места, она создаст свои два экземпляра, и в результате ваша активность откроется дважды, вы можете остановить ее с помощью режимов запуска, пожалуйста, посетите эта почта

Хотя эта ссылка может дать ответ на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если ссылка на страницу изменится. - Из обзора

Kos 16.05.2018 16:09

@Kos Мне нравится.

EJoshuaS - Reinstate Monica 16.05.2018 20:27

@EJoshuaS, этот ответ больше похож на комментарий к сообщению OP

Kos 16.05.2018 20:49

Другие вопросы по теме