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

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

Войти
Регистрация
Восстановить пароль
 
kvaka
29 / 29 / 3
Регистрация: 26.06.2012
Сообщений: 163
#1

Множественный запуск сервиса - Программирование Android

18.07.2012, 10:55. Просмотров 789. Ответов 0
Метки нет (Все метки)

Есть сервис

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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
public class AttentionService extends Service{
    public static final String MAKE_PERIODIC_ATTENTION="Make_periodic_attention";
    private static Timer attentionTimer;
    private Handler handler;
    
    private Notification attentionNotification;
    public static final int NOTIFICATION_ID=1;
    
    String svcName;
    NotificationManager notificationManager;
    Context context;
    Intent startActivityIntent;
    PendingIntent launchIntent;
    
    @Override
    public void onCreate() {
        attentionTimer=new Timer("attention_timer");
        
        int icon=R.drawable.icon;
        String tickerText="Attention!!!";
        long when=System.currentTimeMillis();
        attentionNotification=new Notification(icon, tickerText, when);     
        svcName = Context.NOTIFICATION_SERVICE;
        notificationManager =
        (NotificationManager)getSystemService(svcName);
        context = getApplicationContext();  
        startActivityIntent=new Intent(AttentionService.this, MyActivity.class);
        launchIntent =
            PendingIntent.getActivity(context, 0, startActivityIntent, 0);
        
        
    };
 
    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }
    
    
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        
        
        handler=new Handler();
        attentionTimer.cancel();
        attentionTimer=new Timer("attention_timer");
        attentionTimer.scheduleAtFixedRate(callAttention, 5*1000, 10*1000);
        return Service.START_STICKY;
        
    }
 
    private TimerTask callAttention=new TimerTask() {
        @Override
        public void run() {
            handler.post(makeAttention);
        }
    };
    
    private  Runnable makeAttention=new Runnable() {
        public void run() {
            if (!MyActivity.activityOnScreen){
            notificationManager.cancel(AttentionService.NOTIFICATION_ID);   
            attentionNotification.setLatestEventInfo(getApplicationContext(), "", "Message...", launchIntent);
            attentionNotification.when=java.lang.System.currentTimeMillis();
            notificationManager.notify(NOTIFICATION_ID, attentionNotification);
            Intent intent=new Intent(MAKE_PERIODIC_ATTENTION);
            sendBroadcast(intent);
            }
        }
    };
}
В активити я его запускаю
Java
1
startService(new Intent(getApplicationContext(), AttentionService.class));
и останавливаю
Java
1
stopService(new Intent(getApplicationContext(), AttentionService.class));
Однако происходит следующее: Как и должно быть через определенные промежутки времени появляются уведомления. При повторном запуске и закрытии приложения количество уведомлений увеличивается в 2 раза. Не пойму в чем дело. Я даже таймер статическим сделал, чтобы класс сервиса мог только 1 экземпляр создавать.

Кстати, еще другой сервис тоже не останавливается методом stopService!!! (((
Что не так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2012, 10:55     Множественный запуск сервиса
Посмотрите здесь:

Запуск и останов сервиса - Программирование Android
Здравствуйте, поздравляйте с почином, первое сообщение) Вопрос такой: пишу приложение с сервисом, который должен запускаться при старте...

Запуск сервиса после установки apk - Программирование Android
Подскажите пожалуйста. Как автоматически запустить сервис после установки apk файла ? Т. е. в приложении написан сервис. Мне нужно...

Запуск сервиса после установки apk - Программирование Android
android запуск приложения после установки апк Добавлено через 8 минут точнее ни приложения а сервиса

Множественный выбор в списке - Программирование Android
Создал список в активити и в отдельном XML файле написал как будет выглядеть этот список с двумя текстовыми строками, но как добавить...

Множественный выбор в listview - Программирование Android
вот так создается список class AdapterHelper{ String name = {"Первый","Второй","Третий"}; int img =...

ListView множественный выбор несмотря на SingleChoice mode - Программирование Android
Здравствуйте! Столкнулся с проблемой: использую listview со своим Adapter-ом, наследуем от BaseAdapter-а, с переопределенными методами...

Завершение сервиса - Программирование Android
вот метод завершающий сервис в основной активности: public void onClickStop(View v) { stopService(new Intent(this,...

Создание неубиваемого сервиса - Программирование Android
А как можно создать неубиваемый сервис кроме метода startforaground()? Может какой то флаг можно передать в startCommand чтобы он вообще не...

Два сервиса и Notification - Программирование Android
Друзья, в приложении есть сервис, в нем формируется уведомление, в котором есть кнопка с PendingIntent, вызывающая другой сервис, в котором...

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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