Ich habe ein seltsames Problem, und ich weiß nicht, wie man es löst. Ich möchte eine Verbindung von meinem laufenden Dienst erhalten. Ich mache diese innere Klasse mit Methode:Kann nicht zu Service
public class PlayMusicServiceBinder extends Binder{
public PlayMusicService getService(){
return PlayMusicService.this;
}
}
Dann beginne ich Service und schaffen Verbindung mit ihm:
private PlayMusicService pms
startService(playServiceIntent.putExtra("songs", songs).putExtra("currentPosition", currentPosition).putExtra("path", path));
serviceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
pms = ((PlayMusicService.PlayMusicServiceBinder)service).getService();
}
@Override
public void onServiceDisconnected(ComponentName name) {
pms = null;
}
};
onBind();
onBind():
public void onBind(){
this.bindService(new Intent(this, PlayMusicService.class),serviceConnection, Context.BIND_AUTO_CREATE);
}
Und Compiler auf dieser Linie sagen pms = ((PlayMusicService.PlayMusicServiceBinder)service).getService();
, dass: "Kann nicht gegossen werden"
Ich habe viele gesehen Beispiele, wo solche Aktionen durchgeführt wurden, und niemand beschwerte sich über die Bugs
Hilf mir bitte.
Danke.
Sieht so aus, als ob Sie versuchen, einen Dienst für eine Sammelmappe zu erstellen. Lies ich das richtig? – duffymo
Binder zu einem Service, ich denke, – DZordered
Ist Binder eine Art von Service? Wenn nicht, können Sie keine Sammelmappe in einen Service umwandeln. Das ist klassisch OO IS-A. – duffymo