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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Какое приложение можно написать для диплома по ос Андроид? http://www.cyberforum.ru/android-dev/thread625191.html
У меня тема диплома - "Программирование для ОС Android". Какой проект можете посоветовать для написания в рамках этой темы?
Программирование Android Запуск анимации при старте активити Есть покадровая анимация, которая выставлена фоном одного из элементов интерфейса. прописана как надо: //анимация animal.setBackgroundResource(R.drawable.animation_01); ... http://www.cyberforum.ru/android-dev/thread625083.html
Программирование Android Получить изображение из галереи
Есть Button, есть ImageView. Как по нажатию Button предоставить пользователю галерею, чтоб тот выбрал одно единственное изображение и оно отобразилось в ImageView?
Программирование Android Почему не ввыключается таймер?
Есть сервис public class AttentionService extends Service{ public static final String MAKE_PERIODIC_ATTENTION="Make_periodic_attention"; private Timer attentionTimer; private Handler...
Программирование Android Запрет всплывающего уведомления http://www.cyberforum.ru/android-dev/thread624766.html
Приложение запускает сервис, сервис запускает периодически всплывающие уведомления типа Toast. Однако, данные уведомления должны всплывать только тогда, когда активити, запустившее сервис неактивно....
Программирование Android Ошибка при создании проекта Запускаю Eclipse, создаю Android-проект (параметы: Build SDK: Android 4.1, Minimum Required SDK: Android 4.0.3, Create Activity: BlankActivity). Сразу Java пишет об ошибке в файле... подробнее

Показать сообщение отдельно
kvaka
29 / 29 / 3
Регистрация: 26.06.2012
Сообщений: 163

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

18.07.2012, 10:55. Просмотров 801. Ответов 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!!! (((
Что не так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru