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

时间:2015-09-03 07:53:19

标签: java android broadcastreceiver android-broadcast

我在主要活动的单独文件中注册了一个广播投射接收器,并根据广播接收器中收到的通知,我想在主要活动中执行一些操作。

我的问题是,将广播接收器的通知传递给主要活动的推荐方法是什么?应该在广播接收文件中注册的每个Action iam中制作公共方法吗?或者应该使用将在主要活动中实现的接口。

注意:广泛的演员接收者已注册7个动作

1 个答案:

答案 0 :(得分:2)

创建一个接口并让你的Main活动实现它,这有助于你的MainActivity对象中的Polymorphism Pass作为BroadcastListener文件的接口,并根据动作调用接口中的相应方法。(因为你要么提到有公共方法,我相信你会有对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();
     }
  }


}