. smack, , Activity. AIDL . AIDL . . !
.aidl, , . AIDL - . , ObjectFromService2Activity.aidl
package com.yourproject.something
interface ObjectFromService2Activity {
JSONObject getObjectFromService();
}
, ADT ObjectFromService2Activity gen/.
Android SDK (command line) compiler aidl ( tools/), Java, Eclipse.
obBind() . , Service1.java
public class Service1 extends Service {
private JSONObject jsonObject;
@Override
public void onCreate() {
super.onCreate();
Log.d(TAG, "onCreate()");
jsonObject = new JSONObject();
}
@Override
public IBinder onBind(Intent intent) {
return new ObjectFromService2Activity.Stub() {
public JSONObject getObjectFromService(){
return jsonObject;
}
};
}
@Override
public void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroy()");
}
}
, , ServiceConnection. ,
Service1 s1;
private ServiceConnection mConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder service) {
s1 = ObjectFromService2Activity.Stub.asInterface(service);
}
public void onServiceDisconnected(ComponentName className) {
Log.e(TAG, "Service has unexpectedly disconnected");
s1 = null;
}
};
ObjectFromService2Activity, s1.getObjectFromService() JSONObject. Fun!