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

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

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

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

18.07.2012, 10:55. Просмотров 782. Ответов 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     Множественный запуск сервиса
Посмотрите здесь:

Множественный выбор в listview Android
Восстановление сервиса и Intent Android
Завершение сервиса Android
Android Запуск сервиса после установки apk
Android Запуск сервиса после установки apk
Android Управление громкостью из сервиса
Android Разбудить телефон из сервиса
Android ListView множественный выбор несмотря на SingleChoice mode
Множественный выбор в списке Android
Создание неубиваемого сервиса Android
Android Запуск и останов сервиса
Android Два сервиса и Notification

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

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

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