0

我的应用程序有以下活动:

  • 仪表板活动
  • 飞溅活动
  • 主要活动

这需要流程:仪表板有一个启动 MainActivity 的按钮。主要活动的 onCreate() 方法检查是否先前创建了用户配置文件,如果是,则它正常启动(这很快,没有 GUI 延迟)。如果没有找到用户配置文件,则需要显示一个初始屏幕,其中包含 mainActivity 的说明/操作方法,同时主 Activity 的 onCreate() 创建一个新的用户配置文件文件(缓慢和 GUI 阻塞)。

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

这是 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() 获取块后显示说明活动(飞溅)。

有什么线索吗?

4

1 回答 1

1

从 dashBoardActivity 执行条件检查 (IsProfileExists()),如果配置文件不存在,则调用 Splash 活动。

于 2013-04-24T21:34:44.423 回答