一个活动中有多个暂停(扩展/实现第二个类)



我正在做一个大的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
}
您可以创建一个 ListenerHandler 类

(或为每个 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 根本不需要实现侦听器 - 所有这些实现都可以在处理程序类中处理。

相关内容

最新更新