начать деятельность, не выводя приложение на передний план - PullRequest
2 голосов
/ 30 мая 2020

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

Intent intent = new Intent(SplashScreen.this, HomeActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
startActivity(intent);

1 Ответ

1 голос
/ 30 мая 2020

Вместо того, чтобы запускать HomeActivity мгновенно, просто поднимите флаг и используйте его в следующий раз, когда ваш SplashScreen будет в возобновленном состоянии. Например, вы можете использовать LiveData, чтобы сохранить флаг и наблюдать за ним:

// inside SplashScreen or its ViewModel if you have one
MutableLiveData<Boolean> isVerifiedLiveData = new MutableLiveData<>();

// inside SplashScreen
@Override
protected void onCreate(Bundle savedInstanceState) {

    /* ...... add this to onCreate .... */

    isVerifiedLiveData.observe(this, new Observer<Boolean>() {
        @Override
        public void onChanged(Boolean isVerified) {
            if(isVerified){
                Intent intent = new Intent(SplashScreen.this, HomeActivity.class);
                startActivity(intent);
                finish();
            }
        }
    });
}

Затем, чтобы вызвать изменение активности, просто измените isVerifiedLiveData значение:

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