Профиль пользователя заблокирован сроком «навсегда» без указания причины
Ответы пользователя по тегу Мобильная разработка
  • Timer в android?

    @Fibonachy
    Нубас
    а чем плох класс? Насколько я понял из таймера нужно вызвать таймер? На всякий случай кинул пример "pomodoro" таймера (недавно делал), может быть поможет...
    public class MainActivity extends AppCompatActivity {
    
        WorkClass timer;
        RelaxClass r_timer;
        FloatingActionButton play;
        FloatingActionButton stop;
        TextView display;
        CircularProgressBar circularProgressBar;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);
    
            display = (TextView)findViewById(R.id.time);
            display.setText("02:00");
    
    
            circularProgressBar = (CircularProgressBar)findViewById(R.id.progress);
    
            stop = (FloatingActionButton) findViewById(R.id.stop);
            stop.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    timer.cancel();
                    play.setVisibility(View.VISIBLE);
                    stop.setVisibility(View.INVISIBLE);
                }
            });
    
            play = (FloatingActionButton) findViewById(R.id.play);
            play.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    stop.setVisibility(View.VISIBLE);
                    play.setVisibility(View.INVISIBLE);
                    int animationDuration = 60000;
                    circularProgressBar.setProgressWithAnimation(100, animationDuration);// Default duration = 1500ms
                    timer = new WorkClass(120000, 500);
                    timer.start();
                }
            });
        }
    
    
        public class WorkClass extends CountDownTimer {
    
            public WorkClass(long millisInFuture, long countDownInterval) {
                super(millisInFuture, countDownInterval);
            }
    
            @Override
            public void onTick(long millisUntilFinished) {
                long seconds = millisUntilFinished / 1000;
                display.setText(String.format("%02d", seconds / 60) + ":" + String.format("%02d", seconds % 60));
            }
    
            @Override
            public void onFinish() {
                if (display.getText().equals("00:00")) {
                    display.setText("01:00");
                    showNotify("Устал?", "Тогда удаляй приложение");
                    r_timer = new RelaxClass(60000, 500);
                    r_timer.start();
                } else {
                    display.setText("2:00");
                }
            }
        }
    
        public class RelaxClass extends CountDownTimer {
    
            public RelaxClass(long millisInFuture, long countDownInterval) {
                super(millisInFuture, countDownInterval);
            }
    
            @Override
            public void onTick(long millisUntilFinished) {
                long seconds = millisUntilFinished / 1000;
                display.setText(String.format("%02d", seconds / 60) + ":" + String.format("%02d", seconds % 60));
            }
    
            @Override
            public void onFinish() {
                if (display.getText().equals("00:00")) {
                    display.setText("02:00");
                    showNotify("Отдохнул?", "Настал час расплаты");
                    timer = new WorkClass(120000, 500);
                    timer.start();
                    r_timer.cancel();
                } else {
                    display.setText("2:00");
                }
            }
        }
    
        @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
        private void showNotify(String title, String note) {
            // define sound URI, the sound to be played when there's a notification
            Uri soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    
            // intent triggered, you can add other intent for other actions
            Intent intent = new Intent(getApplicationContext(), MainActivity.class);
            PendingIntent pIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, 0);
            Notification mNotification = new Notification.Builder(this)
    
                    .setContentTitle(title)
                    .setContentText(note)
                    .setSmallIcon(R.drawable.playbutton)
                    .setContentIntent(pIntent)
                    .setSound(soundUri)
                    .build();
    
            NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
            notificationManager.notify(0, mNotification);
        }
    
    }
    Ответ написан