力飞溅从的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活动。

+0

我不希望这个流程,因为当从主要活动按下后退按钮它将返回到飞溅!我不想让飞溅再次出现。你知道这个解决方法吗? – 2013-04-24 21:59:20

+0

您可以从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

+0

我不知道finish()从堆栈中删除一个活动。谢谢。 – 2013-04-28 11:49:46