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

Некорректно работает таймер - Android

Восстановить пароль Регистрация
Другие темы раздела
Android Хранение и использование большого количества изображений http://www.cyberforum.ru/android-dev/thread1840816.html
Всем привет! Подскажите способ хранения большого количества изображений, чтобы можно было эти изображения удобно использовать. Смотрел про <level-list>, в принципе устраивает, но насколько это правильно можете подсказать?:-[
Android Polyline как у гугловского приложения "Карты" Как реализовать такое? http://www.cyberforum.ru/android-dev/thread1840785.html
Android Как переместить фокус на определённое view в listView
Всех приветствую. Подскажите пожалуйста,как переместить фокус на итый элемент listview? Чтобы просто переместить фокус на какое-нибудь view,достаточно вызвать метод requestFocus() у этого view. Но как быть с listview,когда нужно переместить фокус на итый элемент этого listview. Заранее благодарю всех за помощь.
Как убрать верхний прямоугольник в разметке или изменить надпись на нём? Android
Доброго дня. Как в разметке активити убрать верхний прямоугольник и как можно изменить надпись на нём? Даже не знаю как он называется, не ясно с чего гуглить начинать...
Android Получить состояние экрана (активно/заблокировано) http://www.cyberforum.ru/android-dev/thread1840485.html
Как получить в каком состоянии телефон в активном или экран заблокирован или телефон лежит бездействует(но при этом у телефона блокировки экрана не не поставлена, не запоролен). Нашел только как заблокировать экран KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Activity.KEYGUARD_SERVICE); KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); ...
Android Хранение дополнительных данных вне APK приложения Добрый вечер. Возник такой вопрос: делаю приложение на Unity. Для корректной работы нужны дополнительные данные которые должны храниться где нибудь в телефоне. Добавить их в состав апк который делает Unity не хочется так как апк файл увеличивается на 400 мб и тогда не на всех устройствах получается его установть (например на самсунг галакси 2). Хочу создать отдельный апк который просто скопирует... подробнее

Показать сообщение отдельно
HackerNovo
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 6
02.11.2016, 18:29     Некорректно работает таймер
Здравствуйте! Написал для себя мелкое приложение в котором есть таймер, кнопка которая его останавливает и запускает, кнопка которая добавляет 30 мин. На первый взгляд все работает нормально, но когда включаешь таймер и через полчаса проверяешь, то он уже не работает. Причем каждый раз он перестает работать через разное время. Есть предположение, что возможно приложение просто закрывается, так как андроид думает, что оно больше не нужно. Как это исправить? Код ниже:

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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
package com.example.veret.doit;
 
import android.content.SharedPreferences;
import android.os.CountDownTimer;
import android.os.Handler;
import android.os.StrictMode;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
 
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private int time=0;
    private boolean isTimeRunning=false;
    private TextView timeView;
    SharedPreferences sPref;
    final String TIME_COUNT="time_count";
    final String MESSEGE="messege";
    CdTimer timer;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        Button startButton=(Button) findViewById(R.id.startTime);
        Button add=(Button) findViewById(R.id.do_it);
        startButton.setOnClickListener(this);
        add.setOnClickListener(this);
 
 
        sPref = getSharedPreferences("MyPref", MODE_PRIVATE);
        time = sPref.getInt(TIME_COUNT,0);
        TextView textView=(TextView) findViewById(R.id.messege);
        textView.setText(sPref.getString(MESSEGE,""));
        timeView=(TextView) findViewById(R.id.timeView);
 
        timer=new CdTimer(time*1000,1000);
 
        int hour=time/3600;
        int min=(time/60)%60;
        int sec=time%60;
        String timeStr = String.format("%d:%02d:%02d", hour, min, sec);
        timeView.setText(timeStr);
    }
 
    public void onMessClick(View v){
        EditText editText=(EditText) findViewById(R.id.edit_text);
        TextView textView=(TextView) findViewById(R.id.messege);
        String mes= String.valueOf(editText.getText());
        textView.setText(mes);
        sPref = getSharedPreferences("MyPref", MODE_PRIVATE);
        SharedPreferences.Editor ed = sPref.edit();
        ed.putString(MESSEGE,mes);
        ed.commit();
        editText.setText("");
    }
    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.startTime:
                Button startButton=(Button) findViewById(R.id.startTime);
                if (isTimeRunning) {
                    isTimeRunning = false;
                    timer.cancel();
                    startButton.setText("Начать страдать фигней");
                }
                else {
                    isTimeRunning = true;
                    timer.start();
                    startButton.setText("Я молодец!");
                }
                break;
            case R.id.do_it:
                time+=30*60;
                break;
        }
    }
 
    @Override
    protected void onDestroy() {
        super.onDestroy();
        sPref = getSharedPreferences("MyPref", MODE_PRIVATE);
        SharedPreferences.Editor ed = sPref.edit();
        ed.putInt(TIME_COUNT,time);
        ed.commit();
    }
 
    public class CdTimer extends CountDownTimer {
        public CdTimer(long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
        }
 
        @Override
        public void onTick(long millisUntilFinished) {
            time--;
            if(time<=0)
                time=0;
            int hour=time/3600;
            int min=(time/60)%60;
            int sec=time%60;
            String timeStr = String.format("%d:%02d:%02d", hour, min, sec);
            timeView.setText(timeStr);
 
        }
 
        @Override
        public void onFinish() {
 
        }
    }
   
}
XML
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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context="com.example.veret.doit.MainActivity">
 
    <TextView
        android:id="@+id/timeView"
        android:text="00:00:00"
        android:textSize="70dp"
        android:gravity="center"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
 
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Начать страдать фигней"
        android:id="@+id/startTime"/>
 
 
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Я прошел параграф!"
        android:id="@+id/do_it"/>
    <TextView
        android:id="@+id/messege"
        android:layout_weight="1"
        android:textSize="30dp"
        android:gravity="center"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <EditText
            android:id="@+id/edit_text"
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="match_parent" />
        <Button
            android:id="@+id/BtnMes"
            android:onClick="onMessClick"
            android:text="Да!"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>
</LinearLayout>
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru