2012-10-12 42 views
4

我正在將一組應用程序構建爲與MS Office類似的軟件包。這裏每個應用程序都有自己的啓動器,以及它可以從家庭應用程序內啓動。每個應用都有一個登錄頁面。我需要顯示從Android啓動器啓動應用程序時顯示登錄頁面,而不顯示登錄頁面,而從家庭應用程序啓動時,我如何實現這一目標?如何跳過條件下的第一個活動

我的情景:

從啓動----->(應用程序)登錄頁面--->(應用程序)主屏幕

從家庭應用----->(應用程序)首頁屏幕

回答

10

你可以做到這一點通過啓動一個空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); 
     } 

    ... 
+0

Thnx :)剛纔我感到頭腦中的共享首選項可以從其他應用程序訪問:) –

+0

不是如果他們是「MODE_PRIVATE」 – mikemike396

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

在家庭應用只是通過「需要登錄額外」爲假。

1

基本上類似tozka說的,但你也可以啓動你期望更經常需要的活動,並創建你檢查你是否在正確的活動。如果不用其他的活動調用startActivity而不用膨脹任何視圖等。所以,如果你的期望是正確的,那麼在超過50%的情況下,你已經在正確的活動中,將它從兩個被啓動時被調用的活動中保存下來

+0

這似乎是更正確的行爲 – seelts