/ / Android सेवा की विधि जिसे विभिन्न थ्रेड में कहा जाता है। क्या यह अभी भी मुख्य धागे पर चलता है? - जावा, एंड्रॉइड, मल्टीथ्रेडिंग, सेवा

एंड्रॉइड सेवा की विधि विभिन्न धागे में बुलाया जाता है। क्या यह अभी भी मुख्य धागे पर चलता है? - जावा, एंड्रॉइड, मल्टीथ्रेडिंग, सेवा

अगर मैं सही ढंग से समझ रहा हूं, तो एंड्रॉइड Serviceडिफ़ॉल्ट रूप से, मुख्य UI थ्रेड पर चलते हैं। इस प्रकार, किसी भी ऑफ-द-मेन-थ्रेड ऑपरेशन को काम करने के लिए, मैंने लोगों को सुझाव दिया कि कोई एक अलग थ्रेड शुरू करता है Service.

हालांकि, मेरा सवाल है अगर ए Service"विधि को दूसरे सूत्र में कहा जाता है, अर्थात AsyncTask या new Thread(...).start();, करता है Service"कॉलिंग थ्रेड में विधि चलती है? या क्या यह मुख्य थ्रेड पर चलती है, जो माना जाता है कि Service में चल रहा है

दूसरे शब्दों में,

new Thread(new Runnable() {

@Overrde
public void run() {
myAndroidService.doSomething();
}
}).start();

होगा MyAndroidService#doSomething() इस नए में कहा जाता है Thread?

उत्तर:

उत्तर № 1 के लिए 6

एक विधि हमेशा धागे में चलती है जो इसे लागू करती है।

एक विधि वास्तव में किसी भी धागे से संबंधित नहीं है, हां, भले ही यह विधि आपकी सेवा में परिभाषित की गई हो, इसे क्रियान्वित किया जाएगा AsyncTask धागा, मुख्य धागा नहीं है जो आपकी सेवा में चल रहा है।


उत्तर № 2 के लिए 1

हाँ, जैसा कि मार्टिन ने उपर दिया है।

इसके अलावा, आप एक विधि की थ्रेड जानकारी की जाँच कर सकते हैं:

private void doSomething(){
Log.i(TAG, "I"m doing something in thread " + Thread.currentThread().toString());
}