当前位置: 首页 > 知识库问答 >
问题:

如何将数据从广播接收机传递到主活动

宰父俊彦
2023-03-14

我在一个独立于主活动的文件中注册了一个广类型接收器,并且基于在广类型接收器中接收到的通知,我想在主活动中执行一些操作。

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

注:广泛的演员接受者登记为7个行动

共有1个答案

方昊
2023-03-14

创建一个接口并让您的Main activity实现它,这有助于多态性将MainActivity对象作为BroadcastListener文件的接口传递进来,并根据操作在接口中调用适当的方法(既然您提到了要有公共方法,我相信您会引用MainActivity对象)。更像Observer模式那样实现它。

//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();
     }
  }


}
 类似资料:
  • 问题内容: 我需要在单击recyclerview的图像时将数据从传递 到 。有人可以帮忙吗? 问题答案: 创建一个侦听器接口,然后让您的MainActivity实现它。这样,您可以在onClick方法中调用回调方法。 接口: 主要活动: 您的VideoAdapter:

  • 我是Android开发人员开发一个应用程序。在这里,我从GCM获得注册ID并将其保存在字符串中,现在我想将此注册ID从广播接收器类发送到我的主活动类,以便我可以将此值发送到我的服务器。我试图使用意图,但武力关闭总是发生。 GcmBroadcastreceiver的代码。班级是 公共void onReceive(上下文、意图){

  • 我正在尝试将一个字符串从一个activity传递给广播接收器类。我的代码: 活动.类: MyReceiver.Class: 我的清单文件: 当我执行代码时,显示为完全空的!为什么?

  • 如何将数据从活动传递到对话框? 有关更多详细信息,请参阅下图:

  • 我一直试图使用bundle将数据从主活动传递到片段。我已经使用TabLayout和ViewPager以Tab格式添加活动的片段。我没有得到任何错误,但我得到一个null对象作为返回,它显示“错误”在我的第一个片段,因为我已经添加了一个If条件为null对象。这是我的密码 谁能建议我为什么从主活动到片段得到一个空对象,以及如何将多个数据从主活动转移到其他片段,也就是第二和第三个片段。