为了提高程序代码的重用性,我们常常将某些功能独立在单独的文件中,如按钮的onClickListener 之类的过程。但是问题就是,在这种独立的过程类中我们无法直接使用sendBroadcast函数。关于这个问题郁闷了我一个下午,最后才google出解决方法。具体情况是:
由于sendBroadcast()函数只能在Activity、BroadcastReceiver、Service中使用。
我遇到的问题是:我需要在一个单独出来的OnChangeListener的类中调用sendBroadcast发送一条指定的广播。
解决方法:
(假设A为主要的Activity文件,L为独立的Listener类文件。)
1.在L中先定义变量:private A ma;
2.在L中加入函数:public void setA(A a) { ma = a; }
3.在A中,设置监听(假设为ml)后,加上: ml.setA(this);
4.在L中使用sendBroadcast时:ma.sendBroadcast(xxx);
这样就能保证sendBroadcast实际是在Activity中使用。