2010-03-04 22 views
7

मैं एंड्रॉयड में एक आवेदन पत्र बना दिया है और इस तरह टाइमर का इस्तेमाल किया बंद नहीं होता ..टाइमर में एंड्रॉयड

try { 
    CountDownTimer start1 = new CountDownTimer(20000, 1000) { 

     public void onTick(long millisUntilFinished) { 
       TextView timeShow = (TextView)findViewById(R.id.showTime); 
     timeShow.setText(" "+" 00:" +millisUntilFinished/1000); 
      } 

लेकिन मेरी समस्या मैं टाइमर को रोकने के लिए पता नहीं कैसे है। कोई उपाय?

मैं पहले से ही करने की कोशिश की:

quitApplication.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     start1.cancel(); 
     Intent i = new Intent(v.getContext(), startGame.class); 
     startActivity(i); 
     // TODO Auto-generated method stub 
    } 
}); 

उत्तर

10

start1.cancel() काम करना चाहिए की तरह सही विधि टाइमर रद्द करने के लिए कॉल करने के लिए है।

आपको त्रुटि आप मिल गया या कारण है कि यह आप के लिए काम नहीं किया बारे में कोई विवरण प्रदान नहीं किया है, लेकिन मैं अपने कार्यक्रम संकलन नहीं दी क्योंकि आपके चर start1 एक स्थानीय चर है यह सोचते हैं रहा हूँ। यह शायद आपके try ब्लॉक में जो भी तरीका है, स्थानीय है। इसका मतलब है कि आपके OnClickListener निर्माण को पता नहीं है कि start1 है।

इसे ठीक करने के लिए बस एक वर्ग चर के रूप मेंstart1 घोषित (सभी तरीकों के बाहर किंतु भीतर वर्ग):

public class someClass { 

CountDownTimer start1; 
// blah some code 
public void someMethod { 
    try { 
     start1 = new CountDownTimer() { //etc 

ऐसा करने से अन्य तरीकों समझते हैं और start1

1

कॉल start1.cancel() जब आप टाइमर

+0

के साथ बातचीत करने की अनुमति देगा मैं पहले से ही कोशिश कर चुके हैं लेकिन यह समर्थन नहीं करता है। – BIBEKRBARAL

+0

क्या आप हमें दिखा सकते हैं कि आप यह कैसे कर रहे हैं? शायद, समस्या झूठ सकता है ... – Prashast

+0

मैं निम्नलिखित ... quitApplication.setOnClickListener (नई OnClickListener() \t \t { \t \t \t सार्वजनिक शून्य onClick (देखें v) \t \t \t के रूप में इस्तेमाल किया start1.cancel { \t \t \t \t \t \t \t start1.cancel(); \t \t \t \t Inten टी i = नया इरादा (v.getContext(), startGame।कक्षा); \t \t \t प्रारंभ गतिविधि (i); \t \t \t \t \t \t \t // TODO स्वत: निर्मित विधि ठूंठ \t \t \t \t \t \t \t} \t \t \t \t \t \t \t}); – BIBEKRBARAL

2

बंद करना चाहते हैं मैं जानता हूँ कि यह एक साल का है, लेकिन भविष्य पाठकों के लिए तुम सिर्फ टाइमर कॉल करने की आवश्यकता एक फाइनल के रूप में।

तो

final CountDownTimer start1 = new CountDownTimer(20000, 1000) {} 

कि

+1

इससे कोई फर्क क्यों पड़ता है? –

संबंधित मुद्दे