启动活动而不将应用程序带到前台

3

我的安卓应用程序出现了问题。在启动画面经过一些验证后,应用程序会开始运行主页活动,但如果用户切换到另一个应用程序,我的应用程序的主页活动仍然会进入设备的前景。有没有一种方法可以在不将我的应用程序置于前景的情况下启动主页活动呢?我尝试了这段代码,但它没有起作用。

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

1

不要立即启动 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);

感谢您的回答。我使用了“onResume”和“onPause”来设置isVerifiedLiveData的值,一切都很顺利。 - Israël Mekomou

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接