2012-08-16 52 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