Java / Android:处理程序继承和覆盖

时间:2012-09-03 00:00:46

标签: java android

我有一个Android应用程序,它使用扩展Activity类的类,我们称之为MyActivity。在那个类中,我有一个处理各种事物的处理程序。现在,扩展MyActivity类的活动应该能够扩展这些内容,即它必须能够处理除MyActivity之外的其他内容。

以下是我想要的一个例子:

这是我修改过的Activity类,它有一个处理程序:

class MyActivity extends Activity {
    protected Hander myActivityHandler = new Handler()
    {
        @Override
        public void handleMessage(Message msg) {
            switch(msg.what)
            {
            case CASE_1:
                // do stuff
                break;
            case CASE_2:
                // do other stuff
                break;
            }
        }
    }
}

这是扩展该类的类,我想向处理程序添加更多案例:

class MySuperSpecialActivity extends MyActivity {
    // add/override cases of inherited myActivityHandler handler
}

我不知道它是否可能,可能有更好的方法来实现这个功能,但这就是我开始编写代码的方式,因为它经常被使用,所以MyActivity类是必需的。

1 个答案:

答案 0 :(得分:4)

您可以考虑在您的活动中实施Handler.Callback

public class MainActivity extends Activity implements Handler.Callback {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Handler handler = new Handler(this);
    }

    @Override
    public boolean handleMessage(Message msg) {
        // Handle your message here
        return false;
    }    
}

从此Activity继承新Activity并覆盖“handleMessage”:

public class AnotherActivity extends MainActivity {
    @Override
    public boolean handleMessage(Message msg) {
        super.handleMessage(msg);
        return super.handleMessage(msg);
    }

}