簡體   English   中英

無法投放服務

[英]Can't cast to service

我有一個奇怪的問題,我不知道如何解決它。 我想從運行的服務獲得連接。 我用方法使這個內部類:

 public class PlayMusicServiceBinder extends Binder{
    public PlayMusicService getService(){
        return PlayMusicService.this;
    }
}

然后,我啟動服務並與其建立連接:

 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);
}

編譯器在這行說pms = ((PlayMusicService.PlayMusicServiceBinder)service).getService(); ,即:“無法投放”

我已經看到了許多執行此類操作的示例,沒有人抱怨這些錯誤。

請幫幫我。

謝謝。

您是否在PlayMusicService類中添加了此代碼?

@Override
public IBinder onBind(Intent intent) {
    return mBinder;
}

@Override
public boolean onUnbind(Intent intent) {

    return super.onUnbind(intent);
}

private final IBinder mBinder = new PlayMusicServiceBinder();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM