Android 强制从onCreate活动显示飞溅
我的应用程序具有以下活动:Android 强制从onCreate活动显示飞溅,android,android-activity,oncreate,splash-screen,Android,Android Activity,Oncreate,Splash Screen,我的应用程序具有以下活动: 仪表板活动 喷溅活动 主要活动 这是如何要求流量的: 仪表板上有一个启动主活动的按钮。主活动的onCreate()方法检查用户配置文件是否以前创建过,如果是,则它会正常启动(这很快,没有GUI延迟)。 如果找不到用户配置文件,则需要显示一个初始屏幕,其中包含mainActivity的说明/操作方法,同时,main activity的onCreate()会创建一个新的用户配置文件文件(缓慢且GUI阻塞) 我目前看到的是,在缓慢的用户配置文件创建结束后,显示延迟的启动
- 仪表板活动
- 喷溅活动
- 主要活动
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*/
}
点击一下,飞溅物就会自行消失:
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()获取块后,将显示指令活动(splash)
有任何线索吗?从Dashboard activity执行条件检查(IsProfileExists()),如果配置文件不存在,则调用启动活动。我不希望出现此流程,因为当从主活动中按下后退按钮时,它将返回启动!!我不希望飞溅物再次出现。您知道解决此问题的方法吗?您可以从堆栈中删除splashActivity,并在Splash上调用finish。所以它不会出现在后按键上。类似于这样的,instructions.setOnClickListener(new View.OnClickListener(){public void onClick(View v){Intent Intent Intent=new Intent(InstructionsActivity.this,MainActivity.class);startActivity(Intent);finish();});我不知道finish()会从堆栈中删除一个活动。谢谢