2016-10-15 5 views
0

私のAndroidアプリはFacebookログインページから始まり、ユーザーがジェット記録している場合はホームページにスキップしてください。ログインページが1秒間表示されます

問題は、ユーザーがログインした場合、ホームページが1秒間表示されることです。ここで

は私のスターターコードです:

public class MainActivity extends AppCompatActivity { 

private SectionsPagerAdapter mSectionsPagerAdapter; 

private ViewPager mViewPager; 
private AccessTokenTracker mAccessTokenTracker; 

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

    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
    StrictMode.setThreadPolicy(policy); 
    FacebookSdk.sdkInitialize(getApplicationContext()); 
    AppEventsLogger.activateApp(this); 
    final Context context=this; 

    if (AccessToken.getCurrentAccessToken() != null) { 
     mAccessTokenTracker = new AccessTokenTracker() { 
      @Override 
      protected void onCurrentAccessTokenChanged(AccessToken oldAccessToken, AccessToken currentAccessToken) { 
       mAccessTokenTracker.stopTracking(); 
       if(currentAccessToken == null) { 
        Log.i("LOGIN","ALL PERMISSION DELETED, SKIP TO THE LOGIN"); 
       } 
       else { 
        //CHECK PERMISSION ONE BY ONE 
        String current_permission =currentAccessToken.getPermissions().toString(); 
        if (current_permission.contains("user_photos") && current_permission.contains("user_post") && current_permission.contains("public_profile")) { 
         Toast.makeText(getApplicationContext(), "YOU ARE LOGGED IN", Toast.LENGTH_LONG).show(); 
         Intent intent = new Intent(context, HomeActivity.class); 
         context.startActivity(intent); //USER IS LOGGED IN AND HAVE ALL PERMISSION SO GO TO THE HOME PAGE 
        } 
       } 
      } 
     }; 
     AccessToken.refreshCurrentAccessTokenAsync(); 
    } 
    else { 
     Log.i("LOGIN","NEED TO LOG IN"); 
    } 
    setContentView(R.layout.activity_main); 
    ...... 
    //GO TO THE LOGIN PAGE 

は、どのように私はそれを避けるとベストプラクティス何ができますか?

答えて

0

ユーザーがログインしている場合は、startActivity()が呼び出された後にsetContentView()を呼び出さないようにしてください。ユーザーがログインしていない限り、レイアウトを膨張させるわけではありません。

これは、startActivity()が呼び出された後にメソッドから戻るだけでなく、さまざまな方法で行うことができます。

関連する問題