народ,помогите разобраться. пытаюсь сделать AIDL,работаю в netbeans. делаю простейший интерфейс, компилятор его принимает и генерирует заглушку. реализую интерфейс Код | public class MService extends Service{ F.Stub mrmi=new F.Stub() {//F-это интерфейс public int getId() throws RemoteException { return 1; } public void show(int id, String str) throws RemoteException { } }; public IBinder onBind(Intent mint){ return mrmi; } }
|
В манифесте так Код | <service android:name=".MService"> <intent-filter> <action android:name="com.andrey.androidservicermi.F"/> </intent-filter> </service>
|
на клиенте делаю так: вставляю aidl файл и Код | sc=new ServiceConnection(){ public void onServiceConnected(ComponentName cn,IBinder binder){ mr=F.Stub.asInterface((IBinder)binder); } public void onServiceDisconnected(ComponentName cm){ mr=null; } }; boolean flag=bindService(new Intent("com.andrey.androidservicermi.F"),sc, this.BIND_AUTO_CREATE);//возвращается тру try{ Integer id=mr.getId();//метод не вызывается tv.setText(id); }catch(android.os.RemoteException e){ tv.setText(e.getMessage()); } } public void onDestroy(){ super.onDestroy(); unbindService(sc); }
|
Проследив все в дебаге,сбой происходит в Код | public void onServiceConnected(ComponentName cn,IBinder binder){ mr=F.Stub.asInterface(binder); }
|
происходит вызов и инициализация, но не выходит из неё. Может ли это быть от того,что работаю в эмуляторе и просто выход берет больше времени?
|