我有一个泼水活动,应该在家庭活动启动前短暂出现。这是我的代码:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class SplashActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
/****** Create Thread that will sleep for 5 seconds *************/
Thread background = new Thread() {
public void run() {
try {
// Thread will sleep for 2.5 seconds
sleep(2500);
//Remove activity
finish();
// After 2.5 seconds redirect to another intent
Intent i=new Intent(getBaseContext(),HomeActivity.class);
startActivity(i);
} catch (Exception e) {
}
}
};
// start thread
background.start();
}
@Override
protected void onDestroy() {
super.onDestroy();
}
}
目前,除了我回到主屏幕(没有明确杀死应用程序)并恢复它之外,它完美地工作,它再次显示启动画面。如何确保只有在我重新启动应用程序时才会出现启动画面?
答案 0 :(得分:1)
在清单中使用noHistory和excludeFromRecent属性。另外,将标志Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP
添加到用于启动实际活动的意图中。
修改:将android:launchMode="singleTop"
放入真正的主要活动中,并使用意图标记(与其他标记相结合)FLAG_ACTIVITY_NEW_TASK
。
答案 1 :(得分:-2)
我建议您在SplashActivity的onCreate()
方法中保存包含当前时间戳的首选项。
下次打开应用时,检查保存的时间戳与当前时间戳之间的差异是否大于任意值(某种宽限期)并决定显示/避免闪屏。