如题,在Application 绑定了一个service 但是返回binder 并赋值这个操作特别慢
导致在 Activity 中通过Application 的方法获取到的 binder 一直是空值。请问我该如何处理,才能获取到 ?
application 中代码:
public class MyApplication extends Application {
private MusicPlayService.PlayServiceBinder msbinder;
private ServiceConnection mConnection=new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
Log.d("绑定并开启服务","绑定成功");
//获取到bindler 了 可以并转成service 可以调用里面的方法了
msbinder= (MusicPlayService.PlayServiceBinder) service;
msbinder=getbinder();
Log.d("返回bindler",""+msbinder.toString());
}
@Override
public void onServiceDisconnected(ComponentName name) {
}
};
@Override
public void onCreate() {
super.onCreate();
Intent intent=new Intent(this,MusicPlayService.class);
startService(intent);
bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
}
//获取绑定的Binder
public MusicPlayService.PlayServiceBinder getbinder(){
if(msbinder!=null){
Log.d("msbinder不为空","不为空");
}else {
Log.d("msbinder为空","空");
}
return msbinder;
}
}
activity中代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
application= (MyApplication) getApplication();
mSbinder=application.getbinder();
}