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

Код: 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
Куда в сервисе Android класть код сервиса?
    #39224379
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://developer.android.com/intl/ru/guide/components/services.html читал?

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


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