2016-03-21 16 views
2

Benim asıl/başlangıç ​​faaliyeti benim SignInActivity ve ben, durumu çalışmıyor eğer başka açıklamada Firebase auth dinleyiciOturum Açmaya Nasıl Dönülür Firebase authlistener?

mFirebase.addAuthStateListener(new Firebase.AuthStateListener() { 
     @Override 
     public void onAuthStateChanged(AuthData authData) { 
      if (authData != null) { 
       // go to auth activity 
       // such as user logging in 
      } else { 
       if(!(this instanceof SignInActivity)){ 
        // if i sign out in an auth activity 
        // i want to trigger this to go back to the SignIn Activity 
        Intent mIntent = new Intent(getApplicationContext(), SignInActivity.class); 
        mIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
        startActivity(mIntent); 
        finish(); 
        return; 
       } 
      } 
     } 
    }); 

dahil ettik. İç içe geçmiş bir nesnenin içinde this kullanamayacağımı biliyorum. Diğer birkaç denemeyi denedim ama her zaman titremiyorum ve sanırım sonsuz bir döngü içinde bitiyor çünkü durum her zaman karşılanıyor. Bunun için doğru yolu nedir?

cevap

0

bu deneyin:

mFirebase.addAuthStateListener(new Firebase.AuthStateListener() { 
    @Override 
    public void onAuthStateChanged(AuthData authData) { 
     if (authData != null) { 
      // go to auth activity 
      // such as user logging in 
     } else { 
      if(!(SignInActivity.this instanceof SignInActivity)){ 
       // if i sign out in an auth activity 
       // i want to trigger this to go back to the SignIn Activity 
       Intent mIntent = new Intent(getApplicationContext(), SignInActivity.class); 
       mIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
       startActivity(mIntent); 
       finish(); 
       return; 
      } 
     } 
    } 
}); 

Is it safe to use MainActivity.this

+0

o neden mActivity her zaman SignInActivity beyan beri SignInActivity bir örneğini olmak istiyorsunuz? – user2439604

+0

Burada fikir, kullanıcı uygulamayı yeniden açtığında bir kullanıcının giriş yapıp yapmadığını kontrol etmekse, başka bir ifadeye ihtiyacınız yoktur. Kullanıcı giriş yapmamışsa hiçbir şey yapamazsınız. – TheOriginalAlex

+0

Bu nedenlerden biri. Kullanıcının başka bir etkinliğin içinde olması ve kullanıcının çıkış yapması durumunda bunu tetiklemesini istiyorum. İmzala düğmesine/bağlantısına tıklandığında kullanıcı kimliği doğru değil ve bu durumu yakaladığını ve SignInActiviteye yönlendireceğini umuyordum. – user2439604

İlgili konular