启动 activity 而不将应用程序带到前台
start activity without bringing application to foreground
我的 android 应用程序出现问题。在我的启动画面中,经过一些验证后,该应用程序启动了 homeactivity,但如果用户进入另一个应用程序,我的应用程序的 homeactivity 仍将到达设备的前台。有没有办法在不将我的应用程序放在前面的情况下开始家庭活动?
我试过这段代码,但没有用
Intent intent = new Intent(SplashScreen.this, HomeActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
startActivity(intent);
与其立即启动 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();
}
}
});
}
然后触发 activity 更改只需修改 isVerifiedLiveData
值:
isVerifiedLiveData.setValue(true);
我的 android 应用程序出现问题。在我的启动画面中,经过一些验证后,该应用程序启动了 homeactivity,但如果用户进入另一个应用程序,我的应用程序的 homeactivity 仍将到达设备的前台。有没有办法在不将我的应用程序放在前面的情况下开始家庭活动? 我试过这段代码,但没有用
Intent intent = new Intent(SplashScreen.this, HomeActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
startActivity(intent);
与其立即启动 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();
}
}
});
}
然后触发 activity 更改只需修改 isVerifiedLiveData
值:
isVerifiedLiveData.setValue(true);