我正在尝试将Service
绑定到Activity
,它在Bind上返回在Service
中创建的内存文件对象。
问题是,在活动的onServiceConnected()
回调期间,我可以从Service类接收任何类型的对象,除了在Service类中创建的MEMORYFILE
类型对象。 / p>
当存在MemoryFile对象时,服务无法绑定到活动。
服务类如下
public class RemoteService extends Service {
IBinder mBinder = new LocalBinder();
MemoryFile mFile;
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
try {
if(mFile == null)
mFile = new MemoryFile("mem", 1024);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return mBinder;
}
public class LocalBinder extends Binder {
public MemoryFile getMemoryFile() {
return mFile;
}
}
}
在活动中,Onserviceconnected()
回调发生
public void onServiceConnected(ComponentName name, IBinder service) {
Toast.makeText(MainActivity.this, "Service is connected", 1000).show();
mBounded = true;
LocalBinder mLocalBinder = (LocalBinder)service;
memoryFile = mLocalBinder.getMemoryFile();
}