将普通侦听器放在 MainActivity class 中
Put common listeners inside MainActivity class
如果我可以在 main activity class 中设置一些公共侦听器,我很感兴趣?对于我的项目,我使用 FirebaseAuth,所以我想在 MainActivity onCreate() 中初始化它,在 onStart() 和 onStop() 中设置所需的侦听器,然后在每个其他 activity 中继承 class class.
一些取悦你的代码:]
MainActivity class [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 class [child]:
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
}
}
此实现是否会给我带来错误(可能是 NullPointerExeption 或将来出现的意外)?
如果您向我提供 read/watch 的一些资源,那就太好了。
谢谢。
抽象的完美例子,但不是真正的问题。
像这样实现不会出现任何 nullpointers
或其他错误。
如果我可以在 main activity class 中设置一些公共侦听器,我很感兴趣?对于我的项目,我使用 FirebaseAuth,所以我想在 MainActivity onCreate() 中初始化它,在 onStart() 和 onStop() 中设置所需的侦听器,然后在每个其他 activity 中继承 class class.
一些取悦你的代码:]
MainActivity class [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 class [child]:
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
}
}
此实现是否会给我带来错误(可能是 NullPointerExeption 或将来出现的意外)? 如果您向我提供 read/watch 的一些资源,那就太好了。 谢谢。
抽象的完美例子,但不是真正的问题。
像这样实现不会出现任何 nullpointers
或其他错误。