一个Activity中的多个OnPause(扩展/实现第二个类)

时间:2015-03-11 10:19:24

标签: java android

我正在研究一个大型的Android项目并遇到一些问题,要组织我的代码并将逻辑拆分为单独的类。 例如,我的MainActivity包含处理传入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
}

1 个答案:

答案 0 :(得分:0)

您可以创建一个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根本不需要实现监听器 - 所有这些实现都可以在处理程序类中处理。