Мы не можем начать новую деятельность, используя намерение, когда контекст был уничтожен? Я прав? - PullRequest
0 голосов
/ 08 января 2019

Мы не можем начать новое действие, используя намерение, когда контекст был уничтожен? Я прав? И почему я могу начать занятие, когда нажимаю кнопку «Назад» во время работы Thread?

Вот мой код ниже

public class Main3Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);

        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        Intent intent = new Intent(this, Main2Activity.class);
        startActivity(intent);
    }

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        finish();
    }
}

1 Ответ

0 голосов
/ 08 января 2019

Да, вы не можете запустить действие, поскольку действие onBackPressed (), когда ваш поток спит, вызовет исключение InterruptedException.

Чтобы начать задание в любом случае, вы можете переместить намерение внутри блока catch следующим образом.

public class Main3Activity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main3);

    try {
        Thread.sleep(5000);
    } catch (InterruptedException e) {
        e.printStackTrace();
        Intent intent = new Intent(this, Main2Activity.class);
        startActivity(intent);
    }

}

@Override
public void onBackPressed() {
    super.onBackPressed();
    finish();
}

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