我只想在应用程序生命周期中显示一次启动画面。这是我的代码:
SplashScreenActivity.java:
final int welcomeScreenDisplay = 3000;
Thread welcomeThread = new Thread() {
int wait = 0;
@Override
public void run() {
try {
super.run();
while (wait < welcomeScreenDisplay) {
sleep(1000);
wait += 1000;
}
} catch (Exception e) {
System.out.println("EXc=" + e);
} finally {
// Start other Activity
startActivity(new Intent(SplashScreenActivity.this,
MainActiviey.class));
finish();
}
}
};
welcomeThread.start();
list :
<activity android:name=".SplashScreenActivity" android:label="test"
android:noHistory="true"
android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden|keyboard">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActiviey" android:label="test"
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden|keyboard">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
问题是如果我按硬件主页按钮隐藏应用程序并在应用程序列表中再次打开应用程序。它将再次显示初始屏幕(而不是显示 MainActivity
)。
是否可以仅在应用程序“新鲜”启动时显示启动画面(不显示在 onresume() )?谢谢!
最佳答案
你不能对两个 Activity 有这个 Intent :
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
此外,如果您决定按照 Ash 的建议在其中启动另一个 Activity ,您可能希望从历史堆栈中隐藏启动画面。
您可以在您的 Activity 标签上使用此标志:
android:noHistory="true"
关于java - 如何仅在应用程序启动 "fresh"时显示启动画面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7682439/