如何将事件从其他类发送到活动



我正在尝试将事件从一个Java类发送到Activity。

场景是,将有一些数据在本机,本机将调用回调函数,这是在java代码,这个类处理数据,处理后我需要更新UI。我想在Activity处理程序的一个地方更新UI。(不想到处使用runOnUiThread())。

我无法使用以下方法正确发送事件。
方法1:
1)定义将消息发送到队列的函数,并调用这些函数。2)要调用上面提到的函数(第一点),我们需要上下文,如果我维护静态变量来维护上下文并返回它,如果活动被创建两次,我们将无法获得第一个活动的写上下文。

public class Activity1 {
    protected static Context myContext = null;
    protected Handler myHandler = null;
    @override 
    public void onCreate() {
        myContext = this;
        myHandler = new Handler();
    }
    public static Context getMyContext() {
        return myContext;
    }
    public void postEvent1() {
        myHandler.sendMessage();
    }
}

方法2:1)将处理程序作为静态变量,并在静态函数的帮助下返回它。暴露内部变量不是一个好的设计。
2)当创建第二个活动时,Cons将像上面一样。

public class Activity1 {
    protected static Handler myHandler = null;
    @override 
    public void onCreate() {
        myHandler = new Handler();
    }
    public static Context getMyHandler() {
        return myHandler;
    }
}

是否可以在不使用静态变量和静态函数的情况下获得活动上下文?

请分享如果有人知道的知识。:)

谢谢,问候,
SSuman185

我使用一个容器类HashMap来存储带有键的上下文。

我使用类的名称作为键。

当第二个活动试图注册包含hashmap的类时,它将回复已经存储的活动的上下文(如果不是null)。

所以像这样,我能够存储类的上下文,避免丢失第一个活动上下文,如果我正在创建第二个。

请补充谁有更好的解决方案

相关内容

  • 没有找到相关文章

最新更新