2014-05-20 56 views
1

我有一個類加載多個聲音來創建一個音效庫。我使用soundPool的setOnLoadCompleteListener來偵聽每個正在加載的聲音。當每個聲音都被加載時,我會對聲音進行計數,當它們全部加載時,我想將其傳遞給主Activity,以便它可以移動到下一步。如何在課堂和活動之間進行交流?

問題 How to use a local broadcast manager描述瞭如何在活動之間進行真正的廣播。然而,因爲我只想在類和包含它的活動之間進行廣播,所以在這種情況下使用LocalBroadcastManager矯枉過正?

+0

**「類與包含它的活動之間」,**「包含它的活動」的含義是什麼?它是「活動」的內部類嗎? – Squonk

回答

0

是的,它是矯枉過正。你不需要爲此進行廣播。如果您的活動正在實施OnLoadCompleteListener,那麼您可以在加載所有聲音時簡單地調用活動中的某個方法。如果您創建實現OnLoadCompleteListener的對象,則可以爲您的活動創建一個參數給偵聽器的構造函數。當所有的聲音被加載時,你都有一個指向你的活動的指針,並且可以用這種方式調用一個方法。

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