Как абстрагировать вызов сервиса между процессами в Android? - PullRequest
0 голосов
/ 03 июня 2019

Это мой пример сервиса. Мои клиенты они могут или не могут быть в том же процессе.

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(). Есть ли способ отсечь ручную работу здесь и абстрагировать ее от кода, чтобы он вел себя соответственно?

Любое понимание этого было бы полезно.

...