我的应用程序有以下活动:
- 仪表板活动
- 飞溅活动
- 主要活动
这需要流程:仪表板有一个启动 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() 获取块后显示说明活动(飞溅)。
有什么线索吗?