如何在条件下跳过第一个活动

时间:2012-10-12 05:31:55

标签: android

我正在构建一组类似于MS Office的应用程序。每个应用程序都有自己的启动器,也可以从家庭应用程序内部启动。每个应用都有一个登录页面。我需要在从Android启动器启动应用程序时显示登录页面,而在从家庭应用程序启动时不显示登录页面,我该如何实现?

我的情景:

来自启动器----->(应用)登录页面--->(应用程序)主屏幕

来自家庭应用程序----->(应用程序)主屏幕

3 个答案:

答案 0 :(得分:11)

你可以通过启动一个空的activity(没有用户界面)和OnCreate方法取决于一些变量信息(你可以使用SharedPreferences或许为此目的)来做到这一点可以决定启动哪个Activity(登录或主屏应用)。

PS:

如果登录总是导致相同的活动(主屏幕并且不用于登录其他地方),甚至不需要空活动,您可以在登录的Oncreate方法中进行检查活性

protected void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);

    if (logged_in_check_is_true)
       { 
          Intent intent = new Intent(this, HomeScreenActivity.class);
          this.startActivity (intent);
          this.finishActivity (0);
       }

    ...

答案 1 :(得分:1)

您应该始终LoginPageActivity开始。但是,如果你从“家庭应用程序”启动它,只需将特殊额外通过活动:

public class LoginPageActivity extends Activity {
    onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        boolean needLogin = getIntent().getBooleanExtra("need login extra", true);
        if (!needLogin)
        { 
            // start your home screen
        }
        //setup login page
    }
}

在家庭应用程序中,只需将“需要登录额外”作为错误传递。

答案 2 :(得分:1)

基本上与tozka所说的相似,您还可以启动您期望更频繁需要的活动,并创建您检查您是否参加了正确的活动。如果没有调用startActivity与其他活动,而不是先膨胀任何视图等。因此,如果您的期望是正确的,那么在超过50%的情况下,您已经处于正确的活动中,从启动时调用的两个活动中保存您的应用