Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,317
#1

Сервис не останавливается - Программирование Android

23.05.2016, 18:23. Просмотров 225. Ответов 4
Метки нет (Все метки)

Вот активити по нажатию на кнопку Start запускает сервис
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
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
 
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
 
 
    }
    public void onClickStart(View v) {
        startService(new Intent(this, MyService.class));
    }
 
    public void onClickStop(View v) {
        stopService(new Intent(this, MyService.class));
    }
 
}
А вот сам сервис

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
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
 
import java.util.concurrent.TimeUnit;
 
public class MyService extends Service {
 
    final String LOG_TAG = "Func";
 
    public void onCreate() {
        super.onCreate();
        Log.d(LOG_TAG, "onCreate");
    }
 
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.d(LOG_TAG, "onStartCommand");
        someTask();
        startService(new Intent(this, MyService.class));
        return super.onStartCommand(intent, flags, startId);
    }
 
    @Override
    public void onTaskRemoved(Intent rootIntent) {
 
        Log.d(LOG_TAG, "onTaskRemoved");
    }
 
    public void onDestroy() {
        super.onDestroy();
        Log.d(LOG_TAG, "onDestroy");
    }
 
    public IBinder onBind(Intent intent) {
        Log.d(LOG_TAG, "onBind");
        return null;
    }
 
    void someTask() {
 
        new Thread(new Runnable() {
            public void run() {
                for (int i = 1; i<=5; i++) {
                    Log.d(LOG_TAG, "i = " + i);
                    try {
                        TimeUnit.SECONDS.sleep(1);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                stopSelf();
            }
        }).start();
    }
}
В лог постоянно выводится onStartCommand и выводятся числа. Нажимаю на кнопку Stop - сервис не останавливается. Подскажите как исправить код?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2016, 18:23
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сервис не останавливается (Программирование Android):

Сервис останавливается когда закрывается приложение
Добрый вечер, господа. Перечитал очень много статей по поводу сервисов в...

Не останавливается таймер
Решила сделать свою первую игру, но с таймером все никак не ладиться :wall: ...

Handler, поток не останавливается
Добрый вечер. Не могу остановить таймер, при переходе на другую Activity....

При сворачивании приложения, останавливается радио
Здравствуйте. у меня есть фрагмент, в котором при нажатии на play играет радио,...

Невозможно отладить приложение (не останавливается на брейкпоинтах)
Здравствуйте! Пару дней назад начались непонятные глюки при отладке...

Таймер останавливается при блокировке экрана
Он как бы не останавливается вроде до конца, но, например, запускаю, блокирую...

4
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
23.05.2016, 19:39 #2
Цитата Сообщение от yura91 Посмотреть сообщение
startService(new Intent(this, MyService.class));
Что эта строчка в сервисе делает?
0
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,317
23.05.2016, 20:06  [ТС] #3
Спасибо не заметил. Не подскажете а когда устройство переходит в спящий режим, чтобы сервис не засыпал его нужно будить только alarmом?
0
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
23.05.2016, 20:07 #4
yura91, или делать его foreground
0
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,317
23.05.2016, 20:48  [ТС] #5
startforeground() это вы имеете ввиду?
0
23.05.2016, 20:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2016, 20:48
Привет! Вот еще темы с решениями:

Приложение останавливается сразу после открытия
Приложение открывается и сразу has stoped просто пытаюсь присвоить текст...

Приложение останавливается, когда делаю поворот экрана
Приложение останавливается, потому что не все элементы использованы из...

Неубиваемый сервис
Задача такая реализовать сервис, который время от времени будет присылать пуши....

Сервис уведомлений
Привет. Нужна помощь в создании уведомлений из сервиса. В приложение поступают...


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

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

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