【问题标题】:How to call the method of inner class from another class ?如何从另一个类调用内部类的方法?
【发布时间】:2013-12-01 15:45:59
【问题描述】:
public class MusicService extends Service  implements MediaPlayer.OnErrorListener{


private final IBinder mBinder = new ServiceBinder();
MediaPlayer mPlayer;
private int length = 0;

public MusicService() { }

public class ServiceBinder extends Binder {
     MusicService getService()
     {
        return MusicService.this;
     }
}

我想从另一个类调用getService方法,如下所示

public class SplashScreen extends Activity {

// splash screen timer
private static int SPLASH_TIME_OUT= 3000;


// for music player in background 

private boolean mIsBound = false;
private MusicService mServ;
private ServiceConnection Scon =new ServiceConnection(){

    public void onServiceConnected(ComponentName name, IBinder
     binder) {

        mServ = ((MusicService.ServiceBinderbinder).getService();


    }

    public void onServiceDisconnected(ComponentName name) {
        mServ = null;
    }



    };

它在 mServ = ((MusicService.ServiceBinderbinder).getService(); 行显示语法错误

【问题讨论】:

    标签: android class static nested


    【解决方案1】:

    使用

        mServ = ((MusicService.ServiceBinderbinder)binder).getService();
    

    而不是

        mServ = ((MusicService.ServiceBinderbinder).getService();
    

    从 onServiceConnected 初始化 MusicService mServ

    【讨论】:

      【解决方案2】:

      你缺少'binder)' 变化:

      mServ = ((MusicService.ServiceBinderbinder).getService();
      

      为:

      mServ = ((MusicService.ServiceBinderbinder)binder).getService();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-30
        • 2017-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-21
        • 1970-01-01
        相关资源
        最近更新 更多