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

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

Войти
Регистрация
Восстановить пароль
 
biosice
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 49
#1

OnActivityResult из сервис во фрагмент - Программирование Android

04.02.2015, 17:41. Просмотров 578. Ответов 2
Метки нет (Все метки)

Здравствуйте,есть акивити которая запускает мой сервис.
после запуска, сервис должен отослать данные во фрагмент.
по логам показывает что сервис запустился, произвел операции, но фрагмент не выдал логов о том что он получил данные.
как произвести такую цепочку активити->сервис->фрагмент?

main.java(Activity)

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
kill = new Intent(this, timer.class);
 
        pi = createPendingResult(TASK1_CODE, kill, 0);
 
        intent = new Intent(this, timer.class).putExtra(PARAM_TIME, 7)
                .putExtra(PARAM_PINTENT, pi);
 
        startService(intent);
 
        pi = createPendingResult(TASK2_CODE, kill, 0);
        intent = new Intent(this, timer.class).putExtra(PARAM_TIME, 4)
                .putExtra(PARAM_PINTENT, pi);
        startService(intent);
 
        pi = createPendingResult(TASK3_CODE, kill, 0);
        intent = new Intent(this, timer.class).putExtra(PARAM_TIME, 6)
                .putExtra(PARAM_PINTENT, pi);
        startService(intent);
timer.java(Service)

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
public int onStartCommand(Intent intent, int flags, int startId) {
        Log.d(LOG_TAG, "MyService onStartCommand");
        int time = intent.getIntExtra(user_rassp.PARAM_TIME, 1);
        PendingIntent pi = intent.getParcelableExtra(user_rassp.PARAM_PINTENT);
 
    MyRun mr = new MyRun(time, startId, pi);
    es.execute(mr);
    return START_REDELIVER_INTENT;
}
 
@Override
public IBinder onBind(Intent intent) {
    return null;
}
 
class MyRun implements Runnable {
 
    int time;
    int startId;
    PendingIntent pi;
 
    public MyRun(int time, int startId, PendingIntent pi) {
        this.time = time;
        this.startId = startId;
        this.pi = pi;
        Log.d(LOG_TAG, "MyRun#" + startId + " create");
    }
 
    public void run() {
        Log.d(LOG_TAG, "MyRun#" + startId + " start, time = " + time);
        try {
 
            pi.send(user_rassp.STATUS_START);
 
            TimeUnit.SECONDS.sleep(time);
 
 
            Intent intent = new Intent().putExtra(user_rassp.PARAM_RESULT, time * 100);
            Log.d(LOG_TAG, "конец");
            pi.send(timer.this, user_rassp.STATUS_FINISH, intent);
 
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (PendingIntent.CanceledException e) {
            e.printStackTrace();
        }
        stop();
    }
 
    void stop() {
        Log.d(LOG_TAG, "MyRun#" + startId + " end, stopSelfResult("
                + startId + ") = " + stopSelfResult(startId));
    }
}
user_rasp.java(fragment)

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
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    Log.d(LOG_TAG, "requestCode = " + requestCode + ", resultCode = "
            + resultCode);
 
    // Ловим сообщения о старте задач
    if (resultCode == STATUS_START) {
        switch (requestCode) {
            case TASK1_CODE:
                Log.d("task1","start");
                break;
            case TASK2_CODE:
                Log.d("task1", "start");
                break;
            case TASK3_CODE:
                Log.d("task1", "start");
                break;
        }
    }
 
    // Ловим сообщения об окончании задач
    if (resultCode == STATUS_FINISH) {
        int result = data.getIntExtra(PARAM_RESULT, 0);
        switch (requestCode) {
            case TASK1_CODE:
                Log.d("Task1", "finish, result = " + result);
                break;
            case TASK2_CODE:
                Log.d("Task2", "finish, result = " + result);
                break;
            case TASK3_CODE:
                Log.d("Task3", "finish, result = " + result);
                break;
        }
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2015, 17:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос OnActivityResult из сервис во фрагмент (Программирование Android):

OnActivityResult - Программирование Android
Есть класс Photo public class Photo { Uri mUri; Activity ac; public static final int PHOTO_INTENT_REQUEST_CODE = 100; ...

OnActivityResult и FragmentActivity - Программирование Android
Добрый день. Мучился вчера весь день, но так и не одолел проблему. Предыстория: Проект сделан на основе обычной Activity. В ней есть...

OnActivityResult For Fragment - Программирование Android
Помогите решить проблему. У меня есть ListFragment который отображает фотки из бд и кнопка которая запускает стандартное приложения для...

передача результата в onActivityResult - Программирование Android
Скажи пожалуйста. У меня есть 3 активити. Из первой активити я вызываю активность номер2 с помощью старт АктивитиФоРезалт. В свою...

onActivityResult для Fragment - Программирование Android
public class General_Activity extends FragmentActivity { public class TitleAdapter extends FragmentPagerAdapter { private final...

OnActivityResult() внутри Dialog - Программирование Android
Создаю кастомный диалог: MyDialog = new Dialog(this); MyDialog.setContentView(R.layout.search); По нажатию в диалоге кнопки...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
04.02.2015, 19:06 #2
Цитата Сообщение от biosice Посмотреть сообщение
как произвести такую цепочку активити->сервис->фрагмент
Юзать EventBus.
shulyakyarik
10 / 10 / 3
Регистрация: 28.03.2014
Сообщений: 156
04.02.2015, 21:07 #3
Возможно лучше будет использовать BroadcastReceiver
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2015, 21:07
Привет! Вот еще темы с ответами:

Два onActivityResult в одной Activity - Программирование Android
Понимаю что видимо это не реально, но тем не менее. Ситуация в Activity уже есть onActivityResult а теперь в той же Activity требуется...

Вырезать фрагмент из wav файла и сохранить этот фрагмент в новый файл. - Программирование iOS
Добрый день, подскажите плиз как можно вырезать фрагмент из wav и сохранить его в новый wav файл?

Laravel расскажите про сервис провайдеры и сервис контейнеры - PHP
Всю доку перечитала, все равно ничего понять не могу про них. Везде пишут, что это центральные штуки в ларавеле, но я никак не могу понять...

Фрагмент задачи - Python
помогите реализовать следующий фрагмент на python begin case Month of 1, 3, 5, 7, 8, 10, 12 : DneyVMecyace :=...


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

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

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