Требуется код CountDownTimer

Я работаю над приложением, которое запустит countDownTimer после получения «ACTION_SCREEN_ON». У меня есть следующий рабочий код. Я просто хочу реализовать код таймера обратного отсчета в указанном месте.

package com.example.myapp;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class Receiver extends BroadcastReceiver {
    public static final String TAG = "Receiver Tutorial";
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (action != null && Intent.ACTION_SCREEN_ON.equals(action)) {
            Toast.makeText(context, "Screen is turned ON", Toast.LENGTH_LONG).show();
            // Place for CountDown Timer Code
        }
    }
}

Ниже приведен код CountDownTimer, который я получил с страницы разработчиков Android.

new CountDownTimer(30000, 1000) {

     public void onTick(long millisUntilFinished) {
         mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
     }

     public void onFinish() {
         mTextField.setText("done!");
     }
  }.start();

Но я не знаю, как реализовать это в первом коде.


person Miss Noob    schedule 25.04.2014    source источник
comment
Заменить // место для кода таймера обратного отсчета фактическим кодом?   -  person shkschneider    schedule 25.04.2014
comment
Нет. Это не работает.   -  person Miss Noob    schedule 25.04.2014
comment
Почему? Определите, что это не работает, пожалуйста... Потому что это должно работать, а у меня нет с собой хрустального шара.   -  person shkschneider    schedule 25.04.2014
comment
может быть, она скучает по mTextField участнику. У вас есть ошибка времени компиляции?   -  person Blackbelt    schedule 25.04.2014
comment
да. Я получаю ошибку времени компиляции.   -  person Miss Noob    schedule 25.04.2014
comment
возможный дубликат Завершить действие через определенный период времени   -  person codeMagic    schedule 25.04.2014


Ответы (1)


Попробуйте следующим образом,

public class Receiver extends BroadcastReceiver 
{
    public static final String TAG = "Receiver Tutorial";
    private CountDownTimer countDownTimer;
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();

    countDownTimer = new CountDownTimer(30000, 1000) {

        public void onTick(long millisUntilFinished) {

        }

        public void onFinish() {

        }
    };    

        if (action != null && Intent.ACTION_SCREEN_ON.equals(action)) {
            Toast.makeText(context, "Screen is turned ON", Toast.LENGTH_LONG).show();
            countDownTimer.start();
        }
    }
}
person Lucifer    schedule 25.04.2014
comment
Могу я получить вашу контактную информацию? Чтобы я мог связаться с вами, если мне понадобится помощь. - person Miss Noob; 25.04.2014
comment
Нет, сэр. Я не вижу там никакой электронной почты. - person Miss Noob; 28.04.2014