2012-08-16 46 views
0

在Android中,我使用兩種服務,我想將一些細節從一個移動到另一個服務。由此我創建了新的類設置和獲取方法,但我不知道如何連接兩個服務與這個類文件,我可以將細節從一個服務移動到另一個,並記住每一個。在android和一個連接文件中的兩個服務?

例如:

我想從服務1轉移財產布爾服務2,然後在服務2檢查,如果此屬性爲true,如果是真實的話,我在這個seocnd服務執行一些代碼...希望是更好的解釋

類的例子:

public class Settings { 
    private int currentAudioManager; 
    private Boolean isChanged; 

    public int getCurrentAudioManager() { 
     return currentAudioManager; 
    } 

    public void setCurrentAudioManager(int currentAudioManager) { 
     this.currentAudioManager = currentAudioManager; 
    } 
........ 

希望你明白我想要什麼。

回答

1

您可以註冊廣播接收器並在您的服務之間發送可廣播的可接收數據。

public class Service1 extends Service { 

    @Override 
    public void onCreate() {  
     super.onCreate(); 
     registerReceiver(recevier1, new IntentFilter("YOUR_SERVICE_ACTION1")); 

     // if something happen in your service" 
     sendBroadcast(new Intent("YOUR_SERVICE_ACTION2")); // send to second service 
    } 

    @Override 
    public IBinder onBind(Intent intent) {  
     return null; 
    } 

    public void onDestroy() { 
     unregisterReceiver(recevier1); 
    }; 

    Service1Receiver recevier1 = new Service1Receiver();  
    private class Service1Receiver extends BroadcastReceiver{ 

     @Override 
     public void onReceive(Context context, Intent intent) {  
      intent.getExtra("me.SERVICE");// handle your data 
     } 
    } 

} 
+0

謝謝你的想法,但在一個服務內,我需要檢查是否已完成第二項服務,並將此細節移至第二項服務。我用接收器做這件事嗎? – senzacionale 2012-08-16 13:19:07

+0

你可以使用IBinder獲取本地服務來獲取狀態(或者閱讀本文)http://stackoverflow.com/questions/600207/android-check-if-a-service-is-running有關變量 – Yahor10 2012-08-16 13:28:04

+0

不,我不會不想要狀態。我想從服務1傳遞屬性布爾到服務2,然後在服務2檢查,如果這個屬性是真實的,如果是真的,然後我執行一些代碼在這個seocnd服務...希望更好的解釋 – senzacionale 2012-08-16 13:31:41

相關問題