2015-10-19 28 views
-4

我是新開發的android應用程序,我試圖檢查會話是否登錄,如果用戶登錄,它不應該顯示啓動畫面,但它的用戶沒有登錄,它應該顯示3秒的啓動畫面。安卓啓動畫面計時器插件

但閃屏是顯示所有的時間,所以我覺得我做錯了與if/else語句的事情,希望有人能幫助我與:)

public class SplashScreen extends Activity { 

    // Splash screen timer 
    private static int SPLASH_TIME_OUT = 3000; 
    private SessionManager session; 

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

     // Session manager 
     session = new SessionManager(getApplicationContext()); 

     // Check if user is already logged in or not 
     if (session.isLoggedIn()) { 
      // User is already logged in. Take him to main activity 
      new Handler().postDelayed(new Runnable() { 

      /* 
      * Showing splash screen with a timer. This will be useful when you 
      * want to show case your app logo/company 
      */ 

       @Override 
       public void run() { 
        // This method will be executed once the timer is over 
        // Start your app login activity 
        Intent i = new Intent(SplashScreen.this, LoginActivity.class); 
        startActivity(i); 

        // close this activity 
        finish(); 
       } 
      }, SPLASH_TIME_OUT); } else { 
      setContentView(R.layout.splash_screen); 
     } 

    } 
} 
+0

可以不同的角度思考這一點。在檢查他們的登錄狀態時,如果他們已登錄,則顯示/隱藏所需的佈局元素,以便產生飛濺效果並保持您的Handler原樣。如果他們沒有登錄,那麼在你的流程中啓動下一個活動,並「完成()」當前活動以解除它。 – keno

回答

0

我修好了我的自我這這個代碼在這裏:

public class SplashScreen extends Activity { 

// Splash screen timer 
private static int SPLASH_TIME_OUT = 3000; 
private SessionManager session; 

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

    // Session manager 
    session = new SessionManager(getApplicationContext()); 

    // Check if user is already logged in or not 
    if (session.isLoggedIn()) { 
     // User is already logged in. Take him to main activity 

     Intent i = new Intent(SplashScreen.this, MainActivity.class); 
     startActivity(i); 

     // close this activity 
     finish(); 

    } else { 

     setContentView(R.layout.splash_screen); 
     new Handler().postDelayed(new Runnable() { 

     /* 
     * Showing splash screen with a timer. This will be useful when you 
     * want to show case your app logo/company 
     */ 

      @Override 
      public void run() { 

       Intent i = new Intent(SplashScreen.this, LoginActivity.class); 
       startActivity(i); 

       // close this activity 
       finish(); 
      } 
     }, SPLASH_TIME_OUT); 
    } 
} 
}