gpt4 book ai didi

java - 如何将数据从广播接收器传递到主要 Activity

转载 作者:行者123 更新时间:2023-12-02 04:24:26 26 4
gpt4 key购买 nike

我在与主 Activity 不同的文件中注册了广播接收器,并且根据广播接收器中收到的通知,我想在主 Activity 中执行一些操作。

我的问题是,将通知从广播接收器传递到主要 Activity 的推荐方法是什么?应该在广播接收器文件中注册的每个操作中创建一个公共(public)方法吗?或者应该使用将在主 Activity 中实现的接口(interface)。

注意:广播接收器已注册 7 个操作

最佳答案

创建一个接口(interface)并让您的主 Activity 实现它,这有助于多态性将您的 MainActivity 对象作为广播监听器文件的接口(interface)传递,并根据操作调用接口(interface)中适当的方法。(因为您提到了有公共(public)方法,我相信您将拥有对 MainActivity 对象的引用)。更像观察者模式一样实现它。

//BroadcastObserver.java
public interface BroadcastObserver {
//methods methods
public void foo();
}

//MainActivity.java
public class MainActivity extends Activity implements BroadcastObserver{
@Override
public void foo(){

}

}

public class MyClass {
BroadcastObserver static observer; // this should be set to by passing your MainActivity object, may be at the time when you initiate your MyClass object
public static class MyBroadcastReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "!!!!.",
Toast.LENGTH_LONG).show();
if(someaction){
observer.foo();
}
}


}

关于java - 如何将数据从广播接收器传递到主要 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32369954/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com