2010-02-25 13 views

Antwort

35

Die Anwendung kann den Dienst mit Hilfe der Methode Context .startService starten. Die Methode ruft die onCreate-Methode des Service auf, wenn der Service noch nicht erstellt wurde. Sonst wird die onStart Methode aufgerufen. Hier ist der Code:

Intent serviceIntent = new Intent(); 
serviceIntent.setAction("com.testApp.service.MY_SERVICE"); 
startService(serviceIntent); 
1

Die API Demos haben einige Beispiele, die Dienste starten.

1

Verwenden Sie eine Context.startService() -Methode.

Und lesen Sie this.

44

Fügen Sie diese in Ihrem Code

Intent serviceIntent = new Intent(this, ServiceName.class); 
    startService(serviceIntent); 

Vergessen Sie nicht, Service-Tag in AndroidManifest.xml Datei

<service android:name="com.example.ServiceName"></service> 

Vom Android official documentation hinzuzufügen:

Vorsicht: Ein Dienst wird im selben Prozess ausgeführt wie die Anwendung in , für die er deklariert ist, und im Hauptthread dieser Anwendung, standardmäßig . Wenn also Ihr Dienst intensive oder blockierende Vorgänge ausführt, während der Benutzer mit einer Aktivität aus derselben Anwendung interagiert, wird der Dienst durch die Leistung verlangsamt. Um Auswirkungen auf die Anwendungsleistung zu vermeiden, sollten Sie einen neuen Thread innerhalb des Dienstes starten.

+0

können Sie mir geben, wie man s beginnt Ervicein Thread-Code –

1

Zuerst erstellen Sie den Dienst von Android Manifest.xml Datei (d. H. Aus der Anwendung Registerkarte) und geben Sie einen Namen zu ihm.
Auf der Aktivität auf einem Ereignisse wie klicken oder tippen Sie den Code aus dem Dienst gehören:

public void onClick(View v) 
{ 
    startService(new Intent(getApplicationContext(),Servicename.class)); 
} 

Wenn Sie das Laufen oder gestarteten Dienst dann um diesen Code stoppen wollen:

public void onclick(View v) 
{ 
    stopService(new Intent(getApplicationContext,Servicename.class)); 
} 
0

Wenn Wenn Sie einen Dienst starten und im Hintergrund ausgeführt werden möchten, verwenden Sie START_STICKY in Ihrem entsprechenden Dienst.

Sie servvice mit auf Booten starten können, auch

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

und Empfänger schaffen,

<receiver android:name=".auth.NotificationBroadcast" android:enabled="true" > 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    </intent-filter> 
</receiver> 

In brodcast Empfänger hinzufügen,

@Override 
    public void onReceive(Context context, Intent intent) { 

     System.out.println("BroadcastReceiverBroadcast--------------------ReceiverBroadcastReceiverBroadcastReceiver----------------BroadcastReceiver"); 

     if (intent != null) { 
      String action = intent.getAction(); 

     switch (action) { 
      case Intent.ACTION_BOOT_COMPLETED: 
       System.out.println("Called on REBOOT"); 
       // start a new service 
       startService(new Intent(getApplicationContext(),Servicename.class)); 

       break; 
      default: 
       break; 
     } 
    } 
} 

und Ihr Service ist wie,

Verwandte Themen