4

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

我的场景:

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

从主应用程序----->(应用程序)主屏幕

4

3 回答 3

11

您可以通过启动一个空的activity(没有 UI)并在其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);
       }

    ...
于 2012-10-12T05:38:17.287 回答
1

你应该总是开始LoginPageActivity。但是,如果您从“家庭应用程序”启动它,只需将特殊的额外内容传递给 activtiy:

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
    }
}

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

于 2012-10-12T05:43:07.353 回答
1

基本上类似于 tozka 所说的,但您也可以启动您期望更频繁地需要的活动,并在 onCreate 上检查您是否处于正确的活动中。如果不使用其他活动调用 startActivity 而之前没有膨胀任何视图等。因此,如果您的期望是正确的,那么在超过 50% 的情况下,您已经处于正确的活动中,从而使您的应用免于在启动时调用两个活动

于 2012-10-12T05:43:44.740 回答