强制启动来自onCreate Activity

时间:2013-04-24 21:08:04

标签: android android-activity oncreate splash

我的应用有以下活动:

  • DashboardActivity
  • SplashActivity
  • MainActivity

这是如何需要流程的: 仪表板有一个启动MainActivity的按钮。主活动的onCreate()方法检查先前是否创建了用户配置文件,如果是,则它正常启动(这很快,没有GUI延迟)。 如果未找到用户配置文件,则需要显示具有mainActivity指令/操作方法的启动屏幕,同时主活动的onCreate()创建新的用户配置文件(缓慢和GUI阻止)。 / p>

我目前看到的是在用户配置文件创建结束后显示延迟的启动/说明。

以下是MainActivity的代码段。

private void showUsage(){
    Thread splashTread = new Thread() {
        public void run() {
            try {
                Intent instructionIntent = new Intent(MainActivity.this,
                        InstructionsActivity.class);
                startActivity(instructionIntent);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    };
    splashTread.start();
}

@Override //MainActivity
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);

    if (!IsProfileExists()){
        showUsage();
        try{
               createUserProfile(); //slow!
        } catch (Exception e) { }
    }

    /*Continue with MainActivity*/
  }

Splash通过点击解散自己:

   public class InstructionsActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.instructions_layout);
    ImageView instructions = (ImageView) findViewById(R.id.ivInstructions);
    instructions.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            finish();
        }
    });
}
}

问题: 在GUI从MainActivity onCreate()获取阻止后,将显示指令活动(启动)。

任何线索?

1 个答案:

答案 0 :(得分:1)

从dashBoardActivity进行条件检查(IsProfileExists())并在配置文件不存在时调用Splash活动。