Ich bin interessiert, wenn ich einige gemeinsame Listener innerhalb der Hauptaktivitätsklasse festlegen kann? Für mein Projekt verwende ich FirebaseAuth, daher möchte ich es in MainActivity onCreate() initialisieren, benötigte Listener in onStart() und onStop() einrichten und dann diese Klasse in jeder anderen Aktivitätsklasse erben.Setzen Sie gemeinsame Listener in MainActivity-Klasse
Einige Code, den Sie bitte:]
MainActivity Klasse [parent]:
public class MainActivity extends AppCompatActivity {
private static final String TAG = MainActivity.class.getSimpleName();
protected FirebaseAuthentication firebaseAuthentication;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
firebaseAuthentication = new FirebaseAuthentication(FirebaseAuth.getInstance(), FirebaseDatabase.getInstance());
}
@Override
protected void onStart() {
super.onStart();
firebaseAuthentication.addAuthStateListener();
}
@Override
public void onStop() {
super.onStop();
firebaseAuthentication.removeAuthStateListener();
}
}
AuthActivity Klasse [Kind]:
public class AuthActivity extends MainActivity implements FirebaseAuthentication.OnUserAuthListener {
@BindView(R.id.viewPager) LockableViewPager viewPager;
private String userUID;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_market);
ButterKnife.bind(this);
firebaseAuthentication.setOnUserAuthListener(this);
firebaseAuthentication.isSingedIn(); // check if user is singed in
}
@Override
// response for firebaseAuthentication.isSingedIn() above
public void onAuthSuccess(String userUID) {
this.userUID = userUID;
}
@Override
// response for firebaseAuthentication.isSingedIn() above
public void onAuthFailure(String message) {
snackbar(message);
Intent intent = new Intent(this, AuthActivity.class);
startActivity(intent);
finish(); // TODO mb should to delete it
}
}
Kann diese Implementierungen bringen mir Fehler (vielleicht NullPointerExeption oder was unerwartet in der Zukunft)? Wäre toll, wenn Sie mir einige Quellen zum Lesen/Ansehen zur Verfügung stellen. Danke.
Dies ist normalerweise, wie Sie Ihren Code abstrahieren sollen. Aber es hängt wirklich davon ab, ob Sie dies alle Ihre Aktivitäten wollen, indem Sie es in einer Elternaktivität – Dibzmania
@Dibzmania abstrahieren, so dass das eine Frage war. Ist es stabil impl oder Android kann die Elternaktivität irgendwie schließen und auf diese Weise ganze App ruinieren? –