Countdown Timer Notification

I'm starting to program on Android, I need to do a CountdownTimer, which starts with a number selected by the user, using two sets of numbers (one for the clock and the other in a few minutes).

Characteristics must be:

- CountdownTimer should run in the background and notify the user when it reaches 00:00. I have this code:

package com.android.application; import android.app.Activity; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.NumberPicker; public class MainActivity extends Activity { NotificationManager nm; private static final int ID_NOTIFICACION_PERSONAL =1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); NumberPicker number1 = (NumberPicker)findViewById(R.id.horas); NumberPicker number2 = (NumberPicker)findViewById(R.id.minutos); Button btn_lanzar=(Button)findViewById(R.id.btn_notificacion); number1.setMaxValue(10); number1.setMinValue(0); number2.setMinValue(0); number2.setMaxValue(59); int number3=number1.getValue(); int number4=number2.getValue(); nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); btn_lanzar.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { Notification notification = new Notification(R.drawable.estacionamiento,"Estacionamiento Inteligente",System.currentTimeMillis()); PendingIntent intencionpendiente = PendingIntent.getActivity(getApplicationContext(),0, new Intent (getApplicationContext(),Segunda_ventana.class),0); notification.setLatestEventInfo(getApplicationContext(), "Estacionamiento Inteligente", "Su Tiempo se ha Terminado", intencionpendiente); nm.notify(ID_NOTIFICACION_PERSONAL, notification); } }); } } 

I don't know how to get CountdownTimer to start from a number selected by the user by selecting a number and notifying when this is done.

Please help me.: (

+6
source share
1 answer

Use Android Timer and TimerTask classes. Below, I assume that you know how to display notifications, as you seem to be doing in your question.

Along with your number pickers, Button is defined as your static layout:

 <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Start CountDown" android:onClick="startCountdown" /> 

Above, I assume that you also have pickers of numbers in the same layout.

The Java activity code may be as follows:

 NumberPicker hourPicker; NumberPicker minutePicker; @Override protected void onCreate(Bundle savedInstanceState) { hourPicker = (NumberPicker)findViewById(R.id.horas); minutePicker = (NumberPicker)findViewById(R.id.minutos); hourPicker.setMaxValue(10); hourPicker.setMinValue(0); minutePicker.setMinValue(0); minutePicker.setMaxValue(59); } public void startCountdown(View v) { //this fires when button was tapped showTimerStartedNotification(); int hours = hourPicker.getValue(); int mins = minutePicker.getValue(); int millis = ((hours*60)+mins)*60000; // Need milliseconds to use Timer new Timer().schedule(new TimerTask() { @Override public void run() { //code that runs when timer is done showTimerFinishedNotification(); } }, millis); } 
+7
source

Source: https://habr.com/ru/post/989100/


All Articles