如何在课堂和活动之间进行交流?

时间:2014-05-20 00:12:05

标签: android soundpool localbroadcastmanager

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

问题 How to use a local broadcast manager描述了如何在活动之间进行广播。但是,由于我只想在一个类和包含它的活动之间进行广播,在这种情况下使用LocalBroadcastManager是否过度杀伤?

3 个答案:

答案 0 :(得分:0)

您可以尝试OttoGreen 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