我有一个 Android 应用程序,它使用一个扩展 Activity 类的类,我们称它为 MyActivity。在那个类中,我有一个处理各种事情的处理程序。现在扩展 MyActivity 类的 Activity 应该能够扩展这些东西,也就是说它必须能够处理除 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 类是必需的,因为它被广泛使用。
最佳答案
您可以考虑实现 Handler.Callback在你的 Activity 中:
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);
}
}
关于Java/安卓 : handler inheritance and overriding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12240705/