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

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

Войти
Регистрация
Восстановить пароль
 
yura91
28 / 26 / 2
Регистрация: 23.10.2013
Сообщений: 2,195
#1

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

23.05.2016, 18:23. Просмотров 100. Ответов 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 - сервис не останавливается. Подскажите как исправить код?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2016, 18:23     Сервис не останавливается
Посмотрите здесь:

Handler, поток не останавливается Android
Приложение останавливается сразу после открытия Android
Android Сервис уведомлений
Android OnActivityResult из сервис во фрагмент
Сервис останавливается когда закрывается приложение Android
Android Сервис в отдельном процессе
Неубиваемый сервис Android
Android Невозможно отладить приложение (не останавливается на брейкпоинтах)
Android Таймер останавливается при блокировке экрана
Android Не устанавливается сервис
При сворачивании приложения, останавливается радио Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
 Аватар для YuraAAA
1564 / 1306 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
23.05.2016, 19:39     Сервис не останавливается #2
Цитата Сообщение от yura91 Посмотреть сообщение
startService(new Intent(this, MyService.class));
Что эта строчка в сервисе делает?
yura91
28 / 26 / 2
Регистрация: 23.10.2013
Сообщений: 2,195
23.05.2016, 20:06  [ТС]     Сервис не останавливается #3
Спасибо не заметил. Не подскажете а когда устройство переходит в спящий режим, чтобы сервис не засыпал его нужно будить только alarmом?
YuraAAA
 Аватар для YuraAAA
1564 / 1306 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
23.05.2016, 20:07     Сервис не останавливается #4
yura91, или делать его foreground
yura91
28 / 26 / 2
Регистрация: 23.10.2013
Сообщений: 2,195
23.05.2016, 20:48  [ТС]     Сервис не останавливается #5
startforeground() это вы имеете ввиду?
Yandex
Объявления
23.05.2016, 20:48     Сервис не останавливается
Ответ Создать тему
Опции темы

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