力飞溅从的onCreate活动
问题描述:
显示
我的应用程序有以下活动:力飞溅从的onCreate活动
- DashboardActivity
- SplashActivity
- MainActivity
这怎么是必需的流程: 仪表板具有启动MainActivity的按钮。主要活动的onCreate()方法检查是否先前创建了用户配置文件,如果是,则启动正常(这很快,没有GUI延迟)。 如果未找到用户配置文件,则需要显示具有mainActivity指令/操作方法的启动屏幕,同时主活动的onCreate()会创建新的用户配置文件(缓慢和GUI阻止)。
我目前看到的是在用户配置文件创建结束后显示延迟的splash/instructions。
以下是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*/
}
的飞溅通过点击驳回本身:
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获取块()之后。
任何线索?
答
从dashBoardActivity执行条件检查(IsProfileExists()),并在配置文件不存在时调用Splash活动。
我不希望这个流程,因为当从主要活动按下后退按钮它将返回到飞溅!我不想让飞溅再次出现。你知道这个解决方法吗? – 2013-04-24 21:59:20
您可以从Splash上的堆栈调用完成中移除您的splashActivity。所以它不会在后退按键上显示。事情是这样的,instructions.setOnClickListener(新View.OnClickListener(){ \t \t \t \t \t \t \t公共无效的onClick(视图v){ \t \t \t \t \t \t \t意向意图=新意图(InstructionsActivity.this, \t \t \t \t \t \t \t MainActivity.class); \t \t \t \t \t \t \t startActivity(intent); \t \t \t \t \t \t \t finish(); \t \t \t \t \t \t} \t \t \t \t \t \t}); – deepdroid 2013-04-24 22:25:05
我不知道finish()从堆栈中删除一个活动。谢谢。 – 2013-04-28 11:49:46