Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.63
ASDFD12
57 / 57 / 14
Регистрация: 15.09.2012
Сообщений: 542
#1

Передача данных из активности в сервис - Программирование Android

21.12.2013, 17:10. Просмотров 1451. Ответов 0
Метки нет (Все метки)

Есть активность и сервис, который запускается из этой активности. Нужно передать данные из активности в сервис.
Пробовал так.
В MainActivity :
Java
1
 startService(new Intent(this, MyService.class).putExtra("QUOTES", QUOTES));
В сервисе
Java
1
2
Intent intent = getIntent(); // не работает getIntent для сервиса
QUOTES=intent.getStringExtra("QUOTES");
Как бы попроще передать эти данные. Хотелось бы разобрать какой то метод, который подошел бы на любой случай - как передача между активностями, так и сервисами даже из разных приложений.

Добавлено через 4 часа 20 минут
думаю это вариан
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
...
//наследуется от Service, значит IBinder
идентифицирующий
//данный Messenger передастся по методу
onServiceConnected
public class MyService extends Service
{
...
@Override
public IBinder onBind(Intent arg0)
{
return mMessenger.getBinder();
}
//передаем в конструктор
обработчик полученных от клиента
сообщений
final private Messenger mMessenger
= new Messenger(mIncomingHandler);
//собственно сам обработчик
final Handler mIncomingHandler
= new Handler()
{
@Override
public void handleMessage
(Message msg)
{
switch (msg.what)
{
case 0:
...
break ;
case 1:
...
break ;
case 2:
...
break ;
}
}
};
//метод посылки сообщения клиенту
private void sendMessage(Messenger
msgr, Message msg)
{
try
{
msgr.send(msg);
} catch (RemoteException e)
{}
}
...
}
Клиент будет иметь нечто навроде:
...
//реализует интерфейс ServiceConnection,
значит
//есть методы получающие IBinder сервиса
public class BaseActivity extends
Activity implements ServiceConnection
{
private Messenger mService;
...
//вот собственно этот метод
@Override
public void onServiceConnected
(ComponentName name, IBinder service)
{
//передаем в конструктор
IBinder сервиса
mService = new Messenger
(service);
            final Message msg =
Message.obtain( null , 0);
msg.replyTo = mMessenger;
sendMessageToService(msg);
}
final private Messenger mMessenger
= new Messenger(mIncomingHandler);
//обработчик полученных от сервиса
сообщений
     final Handler mIncomingHandler
= new Handler()
{
@Override
public void handleMessage
(Message msg)
{
switch (msg.what)
{
case 0:
...
break;
case 1:
...
break;
case 2:
...
break;
}
}
};
//метод посылки сообщения сервису
protected void sendMessageToService
(Message msg)
{
msg.replyTo = mMessenger;
try
{
mService.send(msg);
} catch (RemoteException
e) {}
}
...
}

http://www.cyberforum.ru/android-dev/thread1065739.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2013, 17:10
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Передача данных из активности в сервис (Программирование Android):

Изменение настроек приложения из активности в рамках активности
Друзья, помогите разобраться! имею наработки приложения-рисовалки, там есть...

Передача данных
Всем доброго времени суток. Написал приложение на андроид 4.2 для планшета,...

Передача данных в interface
Мне необходимо передать данные из файла настроек в интерфейс Retrofita. Вот...

Интернет. Передача данных
Всем привет. Нужна помощь... Каким образам можно создать - ("интернет"...

Передача данных звуком
На смартфоне получена медицинская информация. Требуется передать её в...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2013, 17:10
Привет! Вот еще темы с решениями:

Передача данных по Bluetooth
Добрый день! Нужна помощь. Я относительно недавно начал изучать...

Передача данных по Wifi
Всем доброго времени суток! Нуждаюсь в помощи... Пишу диплом на тему "Wifi...

Передача данных в WebView
Всем привет) У меня есть : WebView myWebView; void init(View v) {...

Передача данных по Bluetooth
Проблема в следующем, после определенного количества переданных байт(зависит от...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru