Java/安卓 : handler inheritance and overriding

标签 java android

我有一个 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/

相关文章:

java - 尝试添加 react 时遇到 onGuildMessageReceived() 问题

android - fragment 替换()不替换所有 fragment

java - 从所有方法访问 SimpleCursorAdapter

android - 多次包含时在布局内设置Android RemoteViews的文本

android - 查看某个位置是否在 Google Maps v2 上用多边形绘制的形状内

java - PHP Json解析Java对象

java - 如何在 java 中准备一个字符串,该字符串最终将传递到 SQL 中进行搜索

Java:代码的性能和复杂性

java - 批量/分组删除 OrientDB/Java

java - 将自定义 jar 依赖项添加到 android studio 中的模块