如何在类和活动之间进行通信



我有一个加载多个声音来创建声音效果库的类。我使用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

最新更新