我有一个加载多个声音来创建声音效果库的类。我使用soundPool的setonloadcompletellistener来收听每个正在加载的声音。当每个声音被加载时,我对声音进行计数,当它们全部加载时,我想将此信息传达给主Activity,以便它可以移动到下一步。
这个问题如何使用本地广播管理器描述了如何在活动之间进行广播。然而,因为我只想在类和包含它的活动之间广播,在这种情况下使用LocalBroadcastManager是否过分?
您可以尝试Otto或Green Robot
是的,这太过分了。你不需要广播。如果你的activity正在实现OnLoadCompleteListener,那么你可以简单地在你的activity中调用一个方法,当你所有的声音都被加载。如果你正在创建一个实现OnLoadCompleteListener的对象,那么你可以为你的活动创建一个监听器构造函数的参数。当所有的声音都被加载,你有一个指针指向你的活动,并可以调用一个方法。
尝试使用侦听器。我以前没有使用过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