Android 将MemoryFile绑定到服务失败
我正在尝试将Android 将MemoryFile绑定到服务失败,android,ipc,Android,Ipc,我正在尝试将服务绑定到活动,该活动在绑定时返回在服务中创建的内存文件对象 问题是,在活动中的onServiceConnected()回调期间,我可以从服务类接收任何类型的对象,除了在服务类中创建的MEMORYFILEtype对象之外 当存在MemoryFile对象时,服务无法绑定到活动 服务级别如下所示 public class RemoteService extends Service { IBinder mBinder = new LocalBinder(); MemoryFile mFi
服务
绑定到活动
,该活动在绑定时返回在服务
中创建的内存文件对象
问题是,在活动中的onServiceConnected()
回调期间,我可以从服务类接收任何类型的对象,除了在服务类中创建的MEMORYFILE
type对象之外
当存在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 on服务已连接(组件名称,IBinder服务){
Toast.makeText(MainActivity.this,“服务已连接”,1000).show();
mBounded=真;
LocalBinder mLocalBinder=(LocalBinder)服务;
memoryFile=mLocalBinder.getMemoryFile();
}
服务#onBind()
返回IBinder,而不是memoryfile是的,在我的例子中,它是mBinder;这是一个LocalBinder类<代码>公共类LocalBinder扩展绑定器{public MemoryFile getMemoryFile(){return mFile;}}}这里是一个完整的服务类公共类RemoteService扩展服务{IBinder mBinder=new LocalBinder();MemoryFile mFile;@Override public IBinder onBind(Intent-Intent){//TODO自动生成的方法存根try{if(mFile==null)mFile=newmemoryfile(“mem”,1024);}catch(IOException e){//TODO自动生成的catch块e.printStackTrace();}return mBinder;}公共类LocalBinder扩展绑定器{public MemoryFile getMemoryFile(){return mFile;}}
和活动内部,当服务连接时。public void on服务连接(组件名称,IBinder服务){Toast.makeText(MainActivity.this,“服务已连接”,1000)。show();mBounded=true;LocalBinder mLocalBinder=(LocalBinder)服务;memoryFile=mLocalBinder.getMemoryFile();}
不要添加长代码作为注释,因为很难阅读,请编辑您的问题