Как я получаю данные в Android Service
это было передано от вызова Activity
?
Первый контекст (может быть 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. Я просто использовал строки в демонстрационных целях.