Данные передачи от Действия до Сервиса с помощью Намерения

Как я получаю данные в Android Service это было передано от вызова Activity?

62
задан CopsOnRoad 31 January 2019 в 14:05
поделиться

1 ответ

Первый контекст (может быть Activity / Service и т. Д.)

Для Service вам нужно переопределить onStartCommand, там у вас есть прямой доступ к intent :

Override
public int onStartCommand(Intent intent, int flags, int startId) {

У вас есть несколько вариантов:

1) Используйте Bundle из Intent :

Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);  

2) Создайте новый Bundle

Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.extras.putString(key, value);
mIntent.putExtras(mBundle);

3) Используйте метод ярлыка putExtra () для Intent

Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);

Новый контекст (может быть Activity / Service и т. Д.)

Intent myIntent = getIntent(); // this getter is just for example purpose, can differ
if (myIntent !=null && myIntent.getExtras()!=null)
     String value = myIntent.getExtras().getString(key);
}

ПРИМЕЧАНИЕ: Пакеты имеют методы «get» и «put» для всех примитивных типов, Parcelables и Serializables. Я просто использовал строки в демонстрационных целях.

30
ответ дан 24 November 2019 в 16:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: