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

Почему не ввыключается таймер? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Запрет всплывающего уведомления http://www.cyberforum.ru/android-dev/thread624766.html
Приложение запускает сервис, сервис запускает периодически всплывающие уведомления типа Toast. Однако, данные уведомления должны всплывать только тогда, когда активити, запустившее сервис неактивно. Соответственно, нужно на период активности приложения запретить вывод данных уведомлений. Как справиться с уведомлениями типа Notification понятно - через NotificationManager, а вот с Toast -...
Программирование Android Ошибка при создании проекта Запускаю Eclipse, создаю Android-проект (параметы: Build SDK: Android 4.1, Minimum Required SDK: Android 4.0.3, Create Activity: BlankActivity). Сразу Java пишет об ошибке в файле src/com.example.first/FirstActivity.java. Не известна переменная R. Этот файл: package com.example.first1; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import... http://www.cyberforum.ru/android-dev/thread624739.html
Параметр отображения Программирование Android
Решил создать разметку и разместить в ней элемент, который изначально невидим, но настроен и находится на нужном месте ( android:visibility="invisible"). В процессе выполнения программы хочу, чтобы по нажатию кнопки мой элемент становился видимым. Для этого в коде для него пишу setVisibility(1). Все пока работает как задумывалось. Потом по нажатию определенной кнопки хочу чтобы мой элемент опять...
android:inputType как вводить цифры или одну букву? Программирование Android
Всем привет. есть editText. всё непоиму как сделать чтобы можно было ввести либо сколько угодно цифр либо только одну букву но не вместе. вот пока что есть: android:inputType="numberDecimal|numberSigned" > заранее спасибо
Программирование Android Программа не работает на реальном телефоне http://www.cyberforum.ru/android-dev/thread624560.html
Пишу небольшую программу, где присутствует авторизация. В эмуляторе все прекрасно авторизуется. Как только кидаю программу на мой xperia, то программа просто падает после нажатия "войти". В чем может быть проблема? Доступ к интернету у телефона естественно есть (wifi). В манифесте разрешения на интернет прописаны.
Программирование Android В сети или нет Нужно, чтобы при условии, что пользователь находится в сети приложение периодически выполняло определенные действия. В каком направлении думать? подробнее

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

Почему не ввыключается таймер? - Программирование Android

17.07.2012, 13:30. Просмотров 737. Ответов 1
Метки (Все метки)

Есть сервис
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
public class AttentionService extends Service{      
    public static final String MAKE_PERIODIC_ATTENTION="Make_periodic_attention";   
    private Timer attentionTimer;
    private Handler handler;
    
    @Override
    public void onCreate() {
        attentionTimer=new Timer("attention_timer");        
    };
 
    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }   
    
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {                              
        attentionTimer.cancel();    
        attentionTimer=new Timer("attention_timer");
        attentionTimer.scheduleAtFixedRate(callAttention, 3*1000, 10*1000);     
        handler=new Handler();      
        return Service.START_STICKY;        
    }
 
    private TimerTask callAttention=new TimerTask() {       
        @Override
        public void run() {
            handler.post(makeToast);
        }
    };
    
    private  Runnable makeToast=new Runnable() {
        public void run() {         
            Intent intent=new Intent(MAKE_PERIODIC_ATTENTION);
            sendBroadcast(intent);          
            String msg="Attention!!!";
            Toast toast=Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT);
            toast.show();
        }
    };
}
Сервис должен периодически выводить всплывающее сообщение.
Все работает нормально до второго запуска приложения.
При втором запуске выдает ошибку

07-17 09:06:44.867: E/AndroidRuntime(20141): java.lang.RuntimeException: Unable to start service com.work.tapme.AttentionService@48001a50 with Intent { cmp=com.work.tapme/.AttentionService }: java.lang.IllegalStateException: TimerTask is scheduled already

Почему такое происходит, я же предусмотрительно в первую очередь отменяю возможную работу таймера? Я конечно вышел из положения запуская stopService перед startService, но как-то это коряво.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru