2013-01-17 63 views
6

मैं हाल ही में एक प्रश्न पूछा था:AsyncTask का उपयोग भेजने के लिए एंड्रॉयड ईमेल निम्न कोड के बारे में

Sending Email in Android using JavaMail API without using the default/built-in app

मुझे नेटवर्क त्रुटि के संबंध में यह कहा था, एक पिछले प्रश्न के अनुसार:

Need Help Debugging Email Code

मेरा सवाल है, मैं इस एंड्रॉइड कोड के साथ सफलतापूर्वक ईमेल भेजने के लिए एक AsyncTask को कैसे कार्यान्वित करूं? हर ट्यूटोरियल है कि मैं देख रहा हूँ मुझे सूचित करता है कि मैं

extend AsyncTask { 

हालांकि करना चाहिए, GMailSender.java पहले से ही इस रूप में परिभाषित किया गया है:

public class GMailSender extends javax.mail.Authenticator 

किसी को भी मेरी मदद करने में सक्षम हो सकते हैं? धन्यवाद!

नोट:

कृपया बेवकूफ जो था -1 एड इस सवाल का और सही उत्तर पोस्ट के रूप में Sending Email in Android using JavaMail API without using the default/built-in app में दिया गया था की तरह नहीं है। मैं उस सटीक कोडिंग का उपयोग करने में असमर्थ हूं, इस तथ्य के कारण कि एंड्रॉइड एप्लिकेशन के मुख्य थ्रेड पर नेटवर्क ऑपरेशन चलाने के लिए अब संभव नहीं है। मैं पृष्ठभूमि में ऑपरेशन चलाने के लिए AsyncTask का उपयोग करने का एक तरीका ढूंढ रहा हूं। क्या मुझे पता करने में असमर्थ हूँ

extend AsyncTask { 

कैसे करना है

public class GMailSender extends javax.mail.Authenticator 

उत्तर

8

छू सही AsyncTask doc page पर एक बहुत अच्छा उदाहरण नहीं है के बिना है।

GMailSender ऑब्जेक्ट को AsyncTask पर पास करें, और doInBackground के दौरान GMailSender#sendMail पर कॉल करें।

है,

public void onClick(View v) { 
    final GMailSender sender = new GMailSender("[email protected]", "password"); 
    new AsyncTask<Void, Void, Void>() { 
     @Override public Void doInBackground(Void... arg) { 
      try { 
       sender.sendMail("This is Subject", 
        "This is Body", 
        "[email protected]", 
        "[email protected]"); 
      } catch (Exception e) { 
       Log.e("SendMail", e.getMessage(), e); 
      } 
     } 
    }.execute(); 

} 
+0

'doInBackground (शून्य ... आर्ग)' मुझे 'इस पद्धति का एक त्रुटि देता है प्रकार शून्य का एक परिणाम लौटना चाहिए ' –

+0

इसके अलावा, मैं 'वापसी शून्य' नहीं कर सकता, क्योंकि यह मुझे एक और 'शून्य' लॉग देगा। –

+0

वास्तव में, मैं इसे वापस लेता हूं। मैंने थोड़ा कोड संपादित किया, और अब यह काम कर रहा है। आपका बहुत बहुत धन्यवाद! चीयर्स! –

1
public void onClick(View v) { 
final GMailSender sender = new GMailSender("[email protected]",  "password"); 
new AsyncTask<Void, Void, Void>() { 
    @Override public Void doInBackground(Void... arg) { 
     try { 
      sender.sendMail("This is Subject", 
       "This is Body", 
       "[email protected]", 
       "[email protected]"); 
     } catch (Exception e) { 
      Log.e("SendMail", e.getMessage(), e); 
     } 
    return null;} 
}.execute(); 

} 

धन्यवाद "dokkaebi"