2017-08-15 8 views
0

MainActivityで、Googleのログインを示しは、私は私のアプリを閉じたときには、再びページ

public class MainActivity extends AppCompatActivity implements GoogleApiClient.ConnectionCallbacks ,GoogleApiClient.OnConnectionFailedListener,View.OnClickListener { 

    private SignInButton signInButton; 
    private GoogleApiClient googleApiClient; 
    public static final String TAG="MainActivity"; 
    private static final int RC_SIGN_IN=1; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     GoogleSignInOptions googleSignInOptions=new GoogleSignInOptions 
       .Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestEmail().build(); 

     googleApiClient=new GoogleApiClient.Builder(this).enableAutoManage(this,this) 
       .addApi(Auth.GOOGLE_SIGN_IN_API,googleSignInOptions).build(); 
     signInButton=(SignInButton)findViewById(R.id.mainactivitygooglesigninbutton); 
     signInButton.setOnClickListener(this); 



    } 

    @Override 
    public void onClick(View v) { 
     switch (v.getId()){ 
      case R.id.mainactivitygooglesigninbutton: 
       signIn(); 
       break; 
     } 
    } 

    private void signIn() { 
     Intent intent=Auth.GoogleSignInApi.getSignInIntent(googleApiClient); 
     startActivityForResult(intent,RC_SIGN_IN); 
    } 


    @Override 
    public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { 
     Toast.makeText(getApplicationContext(), "Login Failed", Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if(requestCode==RC_SIGN_IN){ 
      GoogleSignInResult result=Auth.GoogleSignInApi.getSignInResultFromIntent(data); 
      handleSignInResult(result); 
     } 
    } 

    private void handleSignInResult(GoogleSignInResult result) { 
     if(result.isSuccess()){ 
      GoogleSignInAccount account=result.getSignInAccount(); 
      Intent intent=new Intent(this,ContactsActivity.class); 
      startActivity(intent); 
      finish(); 
     } 
    } 


    @Override 
    public void onConnected(@Nullable Bundle bundle) { 
     if (googleApiClient != null && googleApiClient.isConnected()) { 
      Intent intent=new Intent(this,ContactsActivity.class); 
      startActivity(intent); 
      finish(); 
     } 
    } 

    @Override 
    public void onConnectionSuspended(int i) { 

    } 
} 

マイMainActivityサインインオプションを持っている それはときContactsActivity.Nowために私を取るには、私は私のアプリを開いてサインインすると私は私のアプリケーションを閉じて再びMainActivityを表示しますが、私はContactsActivityを直接表示したいと思います。ユーザーが正常にサインインした後、彼がアプリケーションを終了したらContactsActivityを直接表示します。 助けてください。

+0

は[https://stackoverflow.com/a/35198312/8012913] –

+0

おかげでたくさんご歓迎を – Cycle

+0

niveshで投げる行きます.. 。 –

答えて

0

共有の設定でログインステージを保存します。ユーザーがサインアウトするとき

protected void onCreate(Bundle savedInstanceState) { 
. 
. 
. 


SharedPreferences sharedPreferences = getSharedPreferences("user_login_info",MODE_PRIVATE); 
if(sharedPreferences.getBoolean(user_login,false)){ 
     startActivity(new Intent(this,ContactsActivity.class)); 
     finish(); 
    } 

} 



private void handleSignInResult(GoogleSignInResult result) { 
    if(result.isSuccess()){ 
     GoogleSignInAccount account=result.getSignInAccount(); 
     Intent intent=new Intent(this,ContactsActivity.class); 
     SharedPreferences sharedPreferences = getSharedPreferences("user_login_info",MODE_PRIVATE); 
     editor = sharedPreferences.edit(); 
     editor.putBoolean("user_login",true); //saving user info 
     editor.commit(); 
     startActivity(intent); 
     finish(); 
    } 
} 

だけ共有プリファレンス値をクリア

SharedPreferences sharedPreferences = getSharedPreferences("user_login_info",MODE_PRIVATE); 
editor = sharedPreferences.edit(); 
editor.clear(); 
editor.commit(); 
関連する問題