我正在做一个大的Android项目,遇到了一些问题,要组织我的代码并将逻辑拆分到单独的类中。例如,我的主活动包含处理传入GPS,NFC和QR码事件的所有逻辑。所有这些事件都有自己的onStart(),onResume()和onPause()逻辑,我想将它们外包到一个新类中,只是实现或扩展它们,但不可能扩展多个类。
我该如何解决这个组织问题?有什么想法吗?
public class MainActivity extends FragmentActivity implements ActionBar.TabListener, ConnectionCallbacks,
OnConnectionFailedListener, LocationListener, SensorListener, OnSharedPreferenceChangeListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
// instantiate tabs
// instantiate gps
// instantiate rotation sensor
// instantiate nfc
// instantiate wifi hotspot
}
@Override
protected void onResume() {
// start nfc if necessary
// start gps if necessary
// start wifi hotspot if necessary
}
@Override
protected void onPause() {
// stop nfc if necessary
// stop gps if necessary
// stop wifi hotspot if necessary
}
(或为每个 Listener 创建单独的 ListenerHandler 类),然后在 MainActivity 中实例化处理程序。
例如,使用一个 ListenerHandler 类处理所有侦听器,您的 Main Activity 将如下所示:
public class MainActivity extends FragmentActivity {
ListenerHandler listenerHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
listenerHandler = new ListenerHandler();
}
@Override
protected void onResume() {
listenerHandler.onResume();
}
@Override
protected void onPause() {
listenerHandler.onPause();
}
然后,所有单独的指令都将进入 ListenerHandler 类,保持 MainActivity 类整洁。然后,您的 MainActivity 根本不需要实现侦听器 - 所有这些实现都可以在处理程序类中处理。