Это мой пример сервиса. Мои клиенты они могут или не могут быть в том же процессе.
public class MyService extends Service {
public MyService() {
}
@Override
public int onStartCommand(Intent intent, int flag, int startId) {
Log.i("INFO", "Inside on start command.");
Toast.makeText(getApplicationContext(), "Inside on start command", Toast.LENGTH_SHORT);
return Service.START_STICKY;
}
@Override
public void onCreate() {
super.onCreate();
Toast.makeText(getApplicationContext(), "Service on create called", Toast.LENGTH_SHORT);
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(getApplicationContext(), "Service destroyed", Toast.LENGTH_SHORT);
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
return new IMyAidlInterface.Stub() {
@Override
public int addTwoNumbers(int a, int b) throws RemoteException {
return a + b;
}
};
}
Как я могу абстрагировать эту логику от клиента, который вызывает эту службу MyService
, который может работать или не работать в одном и том же процессе.
В настоящее время я добиваюсь этого, находя вручную, собираюсь ли я работать в том же процессе, в котором работает моя служба, - затем вызывать onStartCommand()
или onBind()
. Есть ли способ отсечь ручную работу здесь и абстрагировать ее от кода, чтобы он вел себя соответственно?
Любое понимание этого было бы полезно.