如何在应用程序开头闪存活动?

时间:2015-03-31 15:28:37

标签: java android

我正在开发一个应用程序。在这个应用程序的开头,一个活动将显示2秒钟,然后是一个以主要活动开始的应用程序。 这就是我试图实现这一目标的方法:

activity_main.java文件:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    Intent i = new Intent(MainActivity.this,open.class);
    startActivity(i);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    android.app.ActionBar bar = getActionBar();
    bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#A6250F")));
    bar.setSubtitle(R.string.title_sub);
}

}

open.java文件

public class open extends Activity {
protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.open);
        android.app.ActionBar bar = getActionBar();
        bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#A6250F")));
}
protected void onStart(){
    super.onStart();
    try {
            Thread.sleep(2000);

        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        finish();
}

}

open.java文件应该在应用程序开头显示2秒钟,然后执行将从activity_main.java继续

但是会发生一个空白屏幕显示一秒钟,然后显示主要活动。需要帮助

1 个答案:

答案 0 :(得分:0)

您应该重新设计流程,以便:

open是首先创建的Activity,加载MainActivity后2秒。

public class open extends Activity {
  private Activity  mActivity;

  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.open);
    android.app.ActionBar bar = getActionBar();
    bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#A6250F")));
    mActivity = this;
    Handler handler = new Handler();
    Runnable r = new Runnable() {
      public void run() {
        Intent i = new Intent(mActiviy, MainActivity.class);
        startActivity(i);
      }
    }
    handler.postDelayed(r, 2000);
  }
}

最后一件事是确保您在Manifest中交换活动,使您的应用程序以open活动开始