我有一个加载多个声音的类来创建一个声音效果库。我使用soundPool的setOnLoadCompleteListener来监听正在加载的每个声音。当每个声音被加载时,我会计算声音,当它们全部加载时,我想将它传达给主Activity,以便它可以移动到下一步。
问题 How to use a local broadcast manager描述了如何在活动之间进行广播。但是,由于我只想在一个类和包含它的活动之间进行广播,在这种情况下使用LocalBroadcastManager是否过度杀伤?
答案 0 :(得分:0)
您可以尝试Otto或Green Robot
答案 1 :(得分:0)
是的,这太过分了。你不需要广播。如果您的活动正在实施OnLoadCompleteListener,则只需在加载所有声音时调用活动中的方法即可。如果您正在创建一个实现OnLoadCompleteListener的对象,那么您可以为您的活动的侦听器构造函数创建一个参数。当所有声音都被加载时,你有一个指向你的活动的指针,并可以通过这种方式调用一个方法。
答案 2 :(得分:0)
尝试使用监听器。我之前没有使用过SoundPool,但是使用和实现监听器的常用方法如下:
public interface ThisIsMyListener {
public void triggerListener();
}
public class ThisIsMyClass {
private ThisIsMyListener lis;
public ThisIsMyClass(ThisIsMyListener listener) {
lis = listener;
}
private void triggerListener() {
lis.triggerListener();
}
}
您的活动必须实现监听器。
public class MyActivity extends Activity implements ThisIsMyListener