2016-11-14 23 views
2

我想實現一個Android應用程序下面的工作流程:如果應用程序啓動時我想顯示啓動畫面Android的 - 工作流飛濺,介紹,登錄,主

  1. (使用 此執行:Splash screens the right way僅 App啓動
  2. 如果應用程序是第一次打開我想 顯示一個介紹(我考慮使用這個庫:AppIntro
  3. 如果用戶沒有登錄,我想表明在活動
  4. 的標誌,否則我想說明的主要活動

從理論上講,我想我知道如何做到這一點。因此,啓動畫面不是問題,使用共享首選項顯示介紹一次也沒有問題,使用Firebase身份驗證檢查登錄狀態也沒有問題。因此,不同的條件是沒有問題的。


但是,在事實上,我有一個問題是如何將單一活動連接。


我應該用濺射屏幕活動爲某種引導,並開始根據活動呢?

的僞碼SplashActivity:

public class SplashActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(@Nullable Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     showCorrectActivity(); 
    } 

    private void showCorrectActivity() { 
     if(introExecuted) { 
      if(userSignedIn) { 
       startActivity(main); 
      } else { 
       startActivity(signIn); 
       showCorrectActivity(); 
      } 
     } else { 
      startActivity(intro); 
      showCorrectActivity(); 
     } 
    } 
} 

或者我應該實現某種流,其中主要活動是「大師」?:

開始SplashActivity的,重定向到主,如果介紹已經顯示,請檢查主電源onCreate(),相應地啓動,如果需要,繼續從主開始登錄。


還是一個完全不同的做法?任何最佳實踐?


我在這裏很難過,所以非常感謝您的任何建議!

+0

只是爲了擡頭,嘗試反編譯谷歌登錄apk com.google.android.gsf.login.apk。它獲得了你所需要的大部分。 –

回答

0

在我看來你的方法是正確的。你使用splashScreen的時間來決定你應該去哪個活動,所以用戶不會等待。

唯一的情況下,當我不會這樣做它會是如果在你的飛濺你必須異步調用Web服務。這會讓用戶開始變慢。