खोज…


पैरामीटर

पैरामीटर विवरण
long millisInFuture टाइमर की कुल अवधि के लिए चला जाएगा, उर्फ भविष्य में कितनी दूर आप टाइमर को समाप्त करना चाहते हैं। मिलीसेकंड में।
long countDownInterval जिस अंतराल पर आप टाइमर अपडेट प्राप्त करना चाहते हैं। मिलीसेकंड में।
long millisUntilFinished onTick() में प्रदान किया गया एक पैरामीटर बताता है कि onTick() कितने समय तक शेष है। मिलीसेकंड में

टिप्पणियों

CountDownTimer एक बहुत दुबला वर्ग है - यह एक काम बहुत अच्छी तरह से करता है। चूंकि आप केवल काउंटडाउनटिमेर को शुरू / रद्द कर सकते हैं, इसलिए आपको दूसरे उदाहरण में दिखाए गए अनुसार पॉज़ / रिज्यूम कार्यक्षमता को लागू करना होगा। अधिक जटिल कार्यक्षमता के लिए, या एक टाइमर निर्दिष्ट करने के लिए जो अनिश्चित काल तक चलना चाहिए, टाइमर ऑब्जेक्ट का उपयोग करें।

एक साधारण उलटी गिनती घड़ी बनाना

CountDownTimer एक निर्धारित अवधि के लिए एक स्थिर अंतराल में बार-बार कार्रवाई करने के लिए उपयोगी है। इस उदाहरण में, हम 30 सेकंड के लिए हर सेकंड एक पाठ दृश्य को अपडेट करेंगे और बताएंगे कि कितना समय शेष है। फिर जब टाइमर खत्म हो जाएगा, तो हम "Done" कहने के लिए TextView सेट करेंगे।

TextView textView = (TextView)findViewById(R.id.text_view);

CountDownTimer countDownTimer = new CountDownTimer(30000, 1000) {
    public void onTick(long millisUntilFinished) {
        textView.setText(String.format(Locale.getDefault(), "%d sec.", millisUntilFinished / 1000L));
    }

    public void onFinish() {
        textView.setText("Done.");
    }
}.start();

एक और अधिक जटिल उदाहरण

इस उदाहरण में, हम गतिविधि जीवनचक्र के आधार पर काउंटडाउनटाइमर को रोकेंगे / फिर से शुरू करेंगे।

private static final long TIMER_DURATION = 60000L;
private static final long TIMER_INTERVAL = 1000L;

private CountDownTimer mCountDownTimer;
private TextView textView;

private long mTimeRemaining;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    textView = (TextView)findViewById(R.id.text_view); // Define in xml layout.

    mCountDownTimer = new CountDownTimer(TIMER_DURATION, TIMER_INTERVAL) {
        
        @Override
        public void onTick(long millisUntilFinished) {
            textView.setText(String.format(Locale.getDefault(), "%d sec.", millisUntilFinished / 1000L));
            mTimeRemaining = millisUntilFinished; // Saving timeRemaining in Activity for pause/resume of CountDownTimer.
        }

        @Override
        public void onFinish() {
            textView.setText("Done.");
        }
    }.start();
}


@Override
protected void onResume() {
    super.onResume();
    
    if (mCountDownTimer == null) { // Timer was paused, re-create with saved time.
        mCountDownTimer = new CountDownTimer(timeRemaining, INTERVAL) {
            @Override
            public void onTick(long millisUntilFinished) {
                textView.setText(String.format(Locale.getDefault(), "%d sec.", millisUntilFinished / 1000L));
                timeRemaining = millisUntilFinished;
            }

            @Override
            public void onFinish() {
                textView.setText("Done.");
            }
        }.start();
    }
}

@Override
protected void onPause() {
    super.onPause();
    mCountDownTimer.cancel();
    mCountDownTimer = null;
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow