Java Reference
In-Depth Information
Klasse, welche die Schnittstelle Runnable implementiert. Die korrekte Implementierung
der Klasse CallbackImpl ist in Listing 16.15 zu fi nden.
Listing 16.15 Implementierung der AIDL-Schnittstelle Callback
package javacomp.android.boundservice;
import android.os.Handler;
import android.os.RemoteException;
import android.widget.TextView;
public class CallbackImpl extends Callback.Stub
{
private Handler handler;
private TextView tv;
public CallbackImpl(Handler handler, TextView tv)
{
this.handler = handler;
this.tv = tv;
}
public void newCounterValue(int newValue) throws RemoteException
{
Runner r = new Runner(tv, newValue);
handler.post(r);
}
}
class Runner implements Runnable
{
private TextView tv;
private int newValue;
public Runner(TextView tv, int newValue)
{
this.tv = tv;
this.newValue = newValue;
}
public void run()
{
tv.setText("neuer Wert: " + newValue);
}
}
Die folgenden Zeilen zeigen beispielha die Benutzung der Methode multiIncrement (coun-
ter sei wieder eine Referenz auf den Zähler aus onServiceConnected, tv eine Referenz auf
ein TextField). Es wird davon ausgegangen, dasss dieser Code vom Main-Thread ausgeführt
wird (wegen der Erzeugung des Handler-Objekts):
Handler handler = new Handler();
Callback cb = new CallbackImpl(handler, tv);
counter.multiIncrement(15, cb);
 
Search WWH ::




Custom Search