Проблема с Android при запуске активности

Здравствуйте, у меня небольшая проблема с моим приложением.

Начальное действие подключается к базе данных sqlite и извлекает целое число, которое проверит последнее, является ли оно 0, 1 или 2. В зависимости от номера оно откроет соответствующее действие.

final DatabaseHandler db = new DatabaseHandler(this); // Connection to the DB
final GokeyPin pinrow = db.getPin(1); // Grabs Pin + Pin Check + ID
int pin_check = pinrow.getYN(); //Grabs Pin Check | 0 = Never made a Pin | 1 = Has a pin | 2 = Doesn't want to have pin activated

    //Checks if you have created a pin

    if(pin_check==0) {

        // If 0 that means you haven't created a pin, so it brings you to the Createpin activity
        Intent intent = new Intent(Start.this, Createpin.class);
        startActivity(intent);  

    }           

    // Checks if you have the pin active.

    if(pin_check==1) {
        // If 1 that means you want to use a pin and you have a pin. Goes to LogIn activity
        Intent intent2 = new Intent(Start.this, Login.class);
        startActivity(intent2);
    }   

    // Now it checks if you don't want to use a pin. That is 2. If so, it goes to Home activity

    if(pin_check==2) {
        Intent intent3 = new Intent(Start.this, Home.class);
        startActivity(intent3);             
    }

Затем я обновляю в настройках активности номер в SQLite и выхожу кнопкой возврата с устройства.

//In setting, checks if you have option to use or not a PIN
            RadioGroup radioGroup2 = (RadioGroup) findViewById(R.id.radioGroupUsePin);
            int id2 = radioGroup2.getCheckedRadioButtonId();

            if (id2 == -1){
                //no item selected
            }

            //If user has option NO selected

            if (id2 == R.id.radioUPNo){
                // Grabs Pin + Pin Check + id from DB
                final GokeyPin pinrow2 = db.getPin(1); 
                //Updates Pin check -> 2 = mean not using
                pinrow2.setYN(2);
                db.updatePin(pinrow2);      
            }
                    // If Yes is selected
            if (id2 == R.id.radioUPYes){

                        // Grabs Pin + Pin Check + id From DB
                        final GokeyPin pinrow2 = db.getPin(1); 
                        //Updates Pin check - 1 = means using pin
                        pinrow2.setYN(1);
                        db.updatePin(pinrow2);
             }

Затем приложение сохраняет изменения, и я закрываю приложение с помощью кнопки возврата.

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {

        moveTaskToBack(true);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

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

То же самое происходит, если у меня нет логина и я хочу войти.

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

1 ответ

Решение

Итак, я понял проблему.

На манифест после добавления android:launchMode="singleTask" к началу деятельности, это решило мою проблему.

Благодаря Крису я смог больше сосредоточиться на Манифесте, чтобы выяснить ошибку.

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