1

我有一个类可以加载多个声音来创建音效库。我使用 soundPool 的 setOnLoadCompleteListener 来监听正在加载的每个声音。在加载每个声音时,我会计算声音,当它们全部加载时,我想将其传达给主 Activity,以便它可以进入下一步。

问题 如何使用本地广播管理器描述了如何在活动之间进行广播非常好。但是,由于我只想在一个类和包含它的活动之间进行广播,所以在这种情况下使用 LocalBroadcastManager 是不是有点矫枉过正?

4

3 回答 3

0

是的,这太过分了。您不需要为此进行广播。如果您的活动正在实现 OnLoadCompleteListener,那么您可以在加载所有声音时简单地在活动中调用一个方法。如果您正在创建一个实现 OnLoadCompleteListener 的对象,那么您可以为您的活动的侦听器的构造函数创建一个参数。加载所有声音后,您将获得一个指向您的活动的指针,并且可以通过这种方式调用它的方法。

于 2014-05-20T01:33:27.217 回答
0

你可以试试OttoGreen Robot

于 2014-05-20T00:40:51.107 回答
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
于 2014-05-20T01:52:25.347 回答