Services

IntentService - запускается в отдельном потоке (=> позволяет делать сетевые запросы)

Service - работает в главном потоке

Intro

Используются для обработки информации в background Как BroadcastReceivers и Activities, Services могут быть вызваны внешними приложениями => должны быть также защищены permissions и флагами export.

Example

Объявление:

<permission android:name="com.example.mypermission" 
            android:label="my_permission" 
            android:protectionLevel="dangerous">
</permission>
<service android:name="com.example.MyService" 
         android:permission="com.example.mypermission">
    <intent-filter>
         <action android:name="com.example.MY_ACTION" />
    </intent-filter>
</service>

Ex: https://startandroid.ru/ru/uroki/vse-uroki-spiskom/157-urok-92-service-prostoj-primer.html

Пример запуска:

Intent intent = new Intent(this, SomeService.class);
intent.setData(someData);
startService(intent);

или
Intent intent = new Intent();
intent.setAction(Intent.SOME_ACTION);
intent.putExtra(Intent.EXTRA_TEXT, "some message");
startService(intent);

Запуск со стороны Android

Все запущенные сервисы и попытки подключения к ним:
$ adb shell dumpsys activity services

Запустить сервис через дрозер:
$ run app.service.start --action <action> --component <package> <service>
вместо <action> можно использовать <service>

Сообщения (--msg) - это действительно 3 цифры хз для чего

Last updated