从超类BroadcastReceiver调用子类方法?

时间:2016-12-09 20:05:52

标签: java android inheritance broadcastreceiver

我想知道是否有人可以指出我正确的方向,我有一个Android应用程序的问题。我有几个扩展超类的子类。该超类包含(本地)BroadcastReceiver。我把接收器放在超类中的原因是因为我喜欢每个子类都要监听同一个广播。然而,一旦广播进来,我希望每个子类做一些完全不同的事情。

最好的方法是什么?我最初在每个子类中创建了一个新的接收器,但我觉得这可能是更好的方法。这是我的超类看起来最基本的例子:

public class SuperClassService extends Service{

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       LocalBroadcastManager.getInstance(this).registerReceiver(
            mReceiver, new IntentFilter("BROADCAST_RECEIVED"));
   }

   @Override
   protected void onDestroy() {
       // Unregister since the activity is paused.
       LocalBroadcastManager.getInstance(this).unregisterReceiver(
            mReceiver);
       super.onPause();
   }

   private BroadcastReceiver mReceiver = new BroadcastReceiver() {
       @Override
       public void onReceive(Context context, Intent intent) {
          // do something in subclass ......
       }
   };
}

每个子类都只是对此进行扩展。那么当通过广播触发超类onReceive时,在子类中获取内容的最佳做法是什么?同样,我的子类将做不同的事情所以我不认为在超类中放置一个通用方法是要走的路。任何帮助将不胜感激。

0 个答案:

没有答案