powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Подскажите по работе с сервисом средствами PendingIntent
6 сообщений из 6, страница 1 из 1
Подскажите по работе с сервисом средствами PendingIntent
    #39012941
korshun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть небольшое приложение с одной Activity, которое получает данные из сервиса средствами PI.
Получается так, что когда приложение работает, обмен через onActivityResult тоже прекрасно работает, но если приложение перезапустить, то данные из сервиса уже не "подхватываются", хотя сам сервис продолжает прекрасно работать.
Как сделать, что бы все работало после перезапусков приложения ? Заранее благодарю!
...
Рейтинг: 0 / 0
Подскажите по работе с сервисом средствами PendingIntent
    #39012957
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как ни крути, а без кода можно только на гуще гадать.
...
Рейтинг: 0 / 0
Подскажите по работе с сервисом средствами PendingIntent
    #39013099
korshun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Весь код копировать не буду, по порядку просто покажу, что делаю.


При выборе пункта меню создаем интент, засовываем в него PI и запускаем сервис:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
PendingIntent piRequest, piCounter, piTotal;

                filesControlServiceIntent =             new Intent(this, FilesControl.class);
                piRequest =                             createPendingResult(CODE_REQUEST, filesControlServiceIntent, 0);
                piCounter =                             createPendingResult(CODE_COUNTER, filesControlServiceIntent, 0);
                piTotal =                               createPendingResult(CODE_TOTAL, filesControlServiceIntent, 0);

                filesControlServiceIntent
                        .putExtra(DOWNLOAD_TYPE, 0)
                        .putExtra(PI_REQUEST, piRequest)
                        .putExtra(PI_COUNTER, piCounter)
                        .putExtra(PI_TOTAL, piTotal);

                startService(filesControlServiceIntent);



В сервисе все это принимаем, достаем и обрабатываем:
Код: 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.
    @Override
    public int onStartCommand(Intent intent, int flags, final int startId) {

        objectToDownload =                              intent.getIntExtra(Root.DOWNLOAD_TYPE, 0);
        piRequest =                                     intent.getParcelableExtra(Root.PI_REQUEST);
        piCounter =                                     intent.getParcelableExtra(Root.PI_COUNTER);
        piTotal =                                       intent.getParcelableExtra(Root.PI_TOTAL);

        if(checkConnection()) {

            new Thread(new Runnable() {
                @Override
                public void run() {


                    switch (objectToDownload) {

                        case 0:
                            queryAllFiles(startId);
                            break;


                        default:
                            queryOneFile(objectToDownload, startId);
                            break;

                    }

                }


            }).start();

        }

        return START_STICKY;
    }




В onActivityResult обрабатываем ответы сервиса:
Код: 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.
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        LinearLayout.LayoutParams loparams =                (LinearLayout.LayoutParams) updateBlock.getLayoutParams();


        switch (requestCode) {


            //  При requestCode = 0 получаем статусы операции
            case CODE_REQUEST:
                if (resultCode == STATUS_CONNECT) {
                    connectStatusLabel.setText(getResources().getText(R.string.update_connecting));

                    loparams.weight =                       1;

                }

                if (resultCode == STATUS_DISCONNECT) {

                    connectStatusLabel.setText(getResources().getText(R.string.update_done));
                    dwnlCancelButton.setText(getResources().getText(R.string.dialog_close));
                }

                totalFiles =                                "";

                break;



            //  При requestCode = 1 обновляем счетчик закачанных файлов
            case CODE_COUNTER:

                String t =                                  new Formatter()
                                                                .format(
                                                                        getResources().getString(R.string.update_continue),
                                                                        String.valueOf(resultCode + "/" + totalFiles)
                                                                )
                                                                .toString();
                connectStatusLabel.setText(t);

                break;



            //  При requestCode = 2 получаем общее кол-во файлов
            case CODE_TOTAL:

                totalFiles =                                String.valueOf(resultCode);

                dwnlCancelButton.setEnabled(true);

                break;
        }

        updateBlock.setLayoutParams(loparams);
    }
...
Рейтинг: 0 / 0
Подскажите по работе с сервисом средствами PendingIntent
    #39013233
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самое интересное и не показал...

Читал тут?
...
Рейтинг: 0 / 0
Подскажите по работе с сервисом средствами PendingIntent
    #39013240
korshun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, читал, все честно стырил именно оттуда :)
Но там же вроде не рассматривается вариант с перезапуском приложения. А чего я самого интересно не показал ?
...
Рейтинг: 0 / 0
Подскажите по работе с сервисом средствами PendingIntent
    #39013243
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перекрой создание, паузу, рестарт и уничтожение активности и сервиса и подключение/отключение и увидишь, где промахнулся.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Подскажите по работе с сервисом средствами PendingIntent
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]