2011-08-01 13 views
5

Benim için bir hizmetin sınırlı olmasına rağmen bir hizmetin çalışmasını istiyorsanız, ilk önce startService (Intent i) ile başlatılmalı.Başlangıçta bekleyinService önceHizmetService

Sorum şu: Başlatmadan hemen sonra hizmete bağlamak istermiysem, aşağıdaki kod hizmetin startService() ile oluşturulmasını garanti eder mi?

hizmet sınıfı içinde

Statik yöntemi:

public static void actStart(Context ctx) { 
    Intent i = new Intent(ctx, BGService.class); 
    i.setAction(ACTION_START); 
    ctx.startService(i); 
} 

bağlanma aktivitesi: Burada yapmaya çalıştığımız ne emin değilim

BGService.actionStart(getApplicationContext());  
bindService(new Intent(this, BGService.class), serviceConnection, Context.BIND_AUTO_CREATE); 
+0

Aynı problemle karşı karşıyayım. Karar verdin mi? –

+3

Bindservice, başlangıç ​​hizmetinin bitmesini bekler – Paul

cevap

0

ama "Context.BIND_AUTO_CREATE" hizmetini oluşturur daha sonra başlatılmamış olsa bile hizmete bağlanır. Şimdi hemen, sen serviceConnection ait onServiceConnected() yöntemini kullanabilirsiniz bağlanmasından sonra erişmek istiyorsanız

şu şekildedir:

new ServiceConnection() { 
     @Override 
     public void onServiceConnected(ComponentName className, 
       IBinder service) { 
      //put your code here... 
     } ... 
0

Buğdaycı cevabı eklemek için tam bir örnektir:

 ServiceConnection myConnection = new ServiceConnection() { 
      @Override 
      public void onServiceConnected(ComponentName className, 
        IBinder service) { 
        ... your code that needs to execute on service connection  

      } 


    @Override 
    public void onServiceDisconnected(ComponentName name) { 
     ... your code that needs to execute on service disconnection 

    } 
     }; 

     Intent intent = new Intent(this, TheServiceClassName.class); 
     bindService(intent, myConnection, Context.BIND_AUTO_CREATE); 
... sonunda bindService olmadan

, onServiceConnected() kodu çalıştırmaz.

İlgili konular