如何在重新启动应用程序时启动启动画面活动?

时间:2015-01-31 13:40:34

标签: android android-activity splash-screen

我有一个泼水活动,应该在家庭活动启动前短暂出现。这是我的代码:

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();

  }

}

目前,除了我回到主屏幕(没有明确杀死应用程序)并恢复它之外,它完美地工作,它再次显示启动画面。如何确保只有在我重新启动应用程序时才会出现启动画面?

2 个答案:

答案 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()方法中保存包含当前时间戳的首选项。 下次打开应用时,检查保存的时间戳与当前时间戳之间的差异是否大于任意值(某种宽限期)并决定显示/避免闪屏。