2011-04-15 49 views
1

我已經獲得Google的示例應用內付費應用程序(Dungeons)正常工作。但是,我正在嘗試爲我正在編寫的應用程序註冊第二個結算接收方,但我無法這樣做。看起來好像只有我的AndroidManifest.xml中聲明的第一個接收者是接收廣播的接收者,但是第一個接收者沒有收到廣播。在運行時,我已經通過使用isOrderedBroadcast()確認廣播不是有序廣播,所以它不像我在某處中止廣播(只有有序的廣播可以中止)。任何幫助,這將不勝感激。只有一個BroadcastReceiver允許接收針對Android應用內結算的帳單廣播?

回答

0

也許第一個接收器需要在第二個接收器可以做它正在做的事情之前註銷。在您的活動中,重寫onStop()方法,以便在活動關閉時取消註冊廣播接收方。這對我來說是有效的。

// Import statements go here. 

public class MyActivity extends AppCompatActivity implements IabBroadcastReceiver.IabBroadcastListener { 

    // Other variables and methods go here. 

    // Unregister the receiver when the activity closes. 
    @Override 
    protected void onStop() 
    { 
     try { 
      unregisterReceiver(YOUR_BROADCAST_RECEIVER_VARIABLE_NAME_HERE); 
     } catch (Exception ex) { 
      // Uncomment the following for debugging. 
      //ex.printStackTrace(); 
     } 

     // Call the original onStop() method. 
     super.onStop(); 
    } 
}