2010-09-13 21 views
5

मैं एक आवेदन से बाहर निकलने पर एक साधारण टोस्ट दिखाना चाहता हूं। समस्या यह है कि टोस्ट नहीं दिखाया गया है। मुझे लगता है कि ऐसा इसलिए है क्योंकि एसिटीविटी समाप्त हो गई है या System.exit(0) की वजह से, लेकिन मुझे नहीं पता कि इसे कैसे हल किया जाए। क्या किसी के पास टिप है? धन्यवाद!!एंड्रॉइड: एप्लिकेशन/गतिविधि को खत्म करने के बाद टोस्ट दिखाएं

मेरी गतिविधि में मैं निम्नलिखित कोड है:

Toast.makeText(this,"Exit application.",Toast.LENGTH_SHORT).show(); 
exitApp(); 

public void exitApp(){ 
    App.getInstance().exit(); 
    finish(); 
} 

और अनुप्रयोग में mehod बाहर निकलें:

public void exit() { 
    System.exit(0); 
} 

उत्तर

4

यह सलाह दी जाती है कि आप बल्कि System.exit(0); बुला के बाद से आपके आवेदन को बंद करने के खत्म फोन यह दृष्टिकोण पूरी तरह से आपके आवेदन को मार देगा। System.exit() आपकी पूरी प्रक्रिया को मारता है। finish() बस अपनी गतिविधि को छुपाता है, रोकता है और नष्ट कर देता है। आपकी प्रक्रिया अभी भी चल रही है।

आप अपनी गतिविधि को बंद करने के लिए बस finish(); का उपयोग कर सकते हैं और इससे आपकी समस्या का समाधान होना चाहिए।

http://groups.google.com/group/android-developers/browse_thread/thread/63de8a9cdffa46a3?pli=1

+0

क्षमा करें, मैंने इसका सही वर्णन नहीं किया: ऐप एप्लिकेशन क्लास को बढ़ाता है और यह गतिविधि नहीं है। –

+0

क्यू टोस्ट दिखाने के लिए कैसे है, कोई विचार? – ankitjaininfo

+0

हां लेकिन यह किसी गतिविधि को विस्तारित नहीं कर रहा है। मुझे लगता है कि संदर्भ गतिविधि वर्ग से अपने वर्ग के विस्तार के आवेदन में पारित किया जाना चाहिए ताकि वह वहां टोस्ट दिखा सके। – DeRagan

0

मैं सिर्फ एक नया धागा बंद निकाल दिया इससे पहले कि सिस्टम प्रक्रिया मार दिया जाता है को दिखाने के लिए टोस्ट के लिए समय मिल सके। इसे देखें:

private Runnable checkForAdBlockRun = new Runnable() { 
    @Override 
    public void run() { 
     boolean blocked = false; 
     try { 
      blocked = AdBlockUtil.areAdsBlocked(); 
      if (blocked) { 
       Log.w(TAG, "Ads are blocked on this device."); 
       adBlockHandler.sendEmptyMessage(0); 

      } 
     } 
     catch (Exception e) { 
      Log.w(TAG, "Could not check for ad blocking", e); 
     } 
    } 
}; 

private Handler adBlockHandler = new Handler() { 
    @Override 
    public void handleMessage(Message message) { 
     Toast.makeText(instance, "Can not run this app with adblock on", Toast.LENGTH_LONG).show(); 
     new Thread(new Runnable() { 
      @Override 
      public void run() { 
       try { 
        Thread.sleep(3000); 
       } 
       catch (Exception e) { } 
       System.exit(0); 
      } 
     }).start(); 
    } 
}; 
संबंधित मुद्दे