Java Reference
In-Depth Information
Namens von RMI, da sie aus einem anderen Package stammt. In Listing 16.9 ist die Klasse
CounterImpl zu fi nden, wobei die beiden Methoden increment und reset vorsorglich schon
einmal synchronized sind.
Listing 16.9 Implementierung der AIDL-Schnittstelle Counter
package javacomp.android.boundservice;
import android.os.RemoteException;
public class CounterImpl extends Counter.Stub
{
private int counter;
public synchronized int increment() throws RemoteException
{
counter++;
return counter;
}
public synchronized int reset() throws RemoteException
{
counter = 0;
return counter;
}
}
1 6 .9 .3 Realisierung eines gebundenen Service
Wenn man eine solche Klasse wie CounterImpl hat, dann kann man einen gebundenen
Service leicht realisieren. Man leitet eine eigene Klasse aus Service ab, überschreibt onBind
und gibt dabei ein Objekt einer solchen Klasse wie CounterImpl zurück (s. Listing 16.10).
Listing 16.10 Klasse MyBoundService zur Realisierung eines gebundenen Service
package javacomp.android.boundservice;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
public class MyBoundService extends Service
{
public IBinder onBind(Intent intent)
{
return new CounterImpl();
}
}
Wie ein ungebundener Service muss auch ein gebundener Service in AndroidManifest.xml
angegeben werden. In diesem Fall soll der Dienst in einem eigenen Prozess laufen und
auch von außerhalb unserer Anwendung mit Hilfe eines impliziten Intents genutzt werden
können:
 
Search WWH ::




Custom Search