我不希望我的应用程序在按下Activity按钮时显示很少的SplashScreenActivity(例如back)。因此,我在noHistory=true中使用了Manifest.xml来表示该Activity,如下所示:

<activity
    android:name="com.gokul.SplashScreenActivity"
    android:noHistory="true" >
</activity>

除了设置noHistory之外,我还可以在自己的finish()方法中或需要的任何地方调用SplashActivity.onPause(),如下所示:
@Override
protected void onPause() {
    super.onPause();
    finish();
}

两者都能完美地完成工作。但是,使用noHistory或调用finish()哪个更好?

最佳答案

onPause()根本不是为您的 Activity 调用finish()的好地方。可以出于多种原因调用onPause(),并且我怀疑您的用户会很高兴看到,例如,如果他们关闭屏幕然后再打开,他们所做的任何事情都会被您的应用程序忘记了。
noHistory应该可以为您服务,但是您可以在启动新finish()后立即在Activity中调用Activity来获得类似的行为。但是,noHistory最终更易于维护,因为如果稍后在finish()中添加另一个startActivity()调用,您最终可能会忘记包括SplashActivity调用。

关于android - noHistory vs finish()-哪个是首选?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21374897/

10-11 15:06