Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.63
ASDFD12
33 / 33 / 5
Регистрация: 15.09.2012
Сообщений: 424
#1

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

21.12.2013, 17:10. Просмотров 1164. Ответов 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) {}
}
...
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2013, 17:10     Передача данных из активности в сервис
Посмотрите здесь:

Передача данных из одной активности в третью - Программирование Android
Есть главное активити. Оно вызывает второе, второе самоудаляется vtnjljv finish() и вызывает третье. В третьем надо передать данные...

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

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

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

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

Layout передача данных - Программирование Android
Каким способом можно передать данные из дочернего Layout в родительский? Умею только передавать данные в дочерний Layout через Intent. ...

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

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

Передача данных по Bluetooth - Программирование Android
Проблема в следующем, после определенного количества переданных байт(зависит от телефона, на huawei ~ 500, на nexus 4 ~ 1700) от Андроида...

Передача данных между Активити - Программирование Android
Все никак не могу разобраться, как передавать данные между активити? я до этого пользовался статическими полями, но это кажется не совсем...

Передача данных через bluetooth - Программирование Android
сразу скажу я новичок в программировании так что не судите строго о моем вопросе. допустим нужно сделать приложение которое запускает...

Передача данных между устройствами - Программирование Android
Всем привет! Подскажите, пожалуйста, как передать значение переменной на другое устройство. Думал использовать wifi direct. Но как это...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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