我正在將一組應用程序構建爲與MS Office類似的軟件包。這裏每個應用程序都有自己的啓動器,以及它可以從家庭應用程序內啓動。每個應用都有一個登錄頁面。我需要顯示從Android啓動器啓動應用程序時顯示登錄頁面,而不顯示登錄頁面,而從家庭應用程序啓動時,我如何實現這一目標?如何跳過條件下的第一個活動
我的情景:
從啓動----->(應用程序)登錄頁面--->(應用程序)主屏幕
從家庭應用----->(應用程序)首頁屏幕
我正在將一組應用程序構建爲與MS Office類似的軟件包。這裏每個應用程序都有自己的啓動器,以及它可以從家庭應用程序內啓動。每個應用都有一個登錄頁面。我需要顯示從Android啓動器啓動應用程序時顯示登錄頁面,而不顯示登錄頁面,而從家庭應用程序啓動時,我如何實現這一目標?如何跳過條件下的第一個活動
我的情景:
從啓動----->(應用程序)登錄頁面--->(應用程序)主屏幕
從家庭應用----->(應用程序)首頁屏幕
你可以做到這一點通過啓動一個空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);
}
...
您應該始終啓動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
}
}
在家庭應用只是通過「需要登錄額外」爲假。
基本上類似tozka說的,但你也可以啓動你期望更經常需要的活動,並創建你檢查你是否在正確的活動。如果不用其他的活動調用startActivity而不用膨脹任何視圖等。所以,如果你的期望是正確的,那麼在超過50%的情況下,你已經在正確的活動中,將它從兩個被啓動時被調用的活動中保存下來
這似乎是更正確的行爲 – seelts
Thnx :)剛纔我感到頭腦中的共享首選項可以從其他應用程序訪問:) –
不是如果他們是「MODE_PRIVATE」 – mikemike396