Гость
Форумы / Android [игнор отключен] [закрыт для гостей] / Куда в сервисе Android класть код сервиса? / 2 сообщений из 2, страница 1 из 1
25.04.2016, 18:26
    #39224117
stavelot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Куда в сервисе Android класть код сервиса?
Есть код сервиса:

Код: 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.
public class PlayService extends Service
{
    public static int flag = 0;
    NotificationManager nm;
    MediaPlayer mPlayer;
    @Override
    public IBinder onBind(Intent intent)
    {
        return null;
    }

    @Override
    public void onCreate()
    {
        Toast.makeText(this, "Служба создана",
                Toast.LENGTH_SHORT).show();
        mPlayer = MediaPlayer.create(this, R.raw.madonna);
        mPlayer.setLooping(false);
        // Notif Start
        nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
        // Notif Stop
    }

    @Override
    public void onStart(Intent intent, int startid)
    {
        Toast.makeText(this, "Служба запущена",
                Toast.LENGTH_SHORT).show();
        mPlayer.start();
        try {
            Run.main();
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        if (flag == 777)
        {sendNotif();}
    }



процедура Run.main(); и делает всю основную работу, коннектится к серверу слушает его ответ в цикле с таймаутом, если сервер возвращает код с ошибкой 777, то всплывает натификация. Проблема в том, что андройд думает что сервис подвис и выкидывает натификацию завершить сервис или ждать от него ответ. Предполагаю, что код вызова Run.main(); запускается не в том месте. Где обычно должен быть размещен такой код для сервиса, в андройде новичок, сильно не пинайте?
...
Рейтинг: 0 / 0
26.04.2016, 08:36
    #39224379
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Куда в сервисе Android класть код сервиса?
http://developer.android.com/intl/ru/guide/components/services.html читал?

developerВнимание! Служба работает в основном потоке ведущего процесса — служба не создает своего потока и не выполняется в отдельном процессе (если вы не указали иное). Это означает, что если ваша служба собирается выполнять любую работу с высокой нагрузкой ЦП или блокирующие операции (например, воспроизведение MP3 или сетевые операции), вы должны создать в службе новый поток для выполнения этой работы. Используя отдельный поток, вы снижаете риск возникновения ошибок «Приложение не отвечает», и основной поток приложения может отрабатывать взаимодействие пользователя с вашими операциями.
...
Рейтинг: 0 / 0
Форумы / Android [игнор отключен] [закрыт для гостей] / Куда в сервисе Android класть код сервиса? / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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