2012-05-08 10 views
10

मुझे एंड्रॉइड से जेएनआई फ़ंक्शन कॉल के बारे में कोई संदेह है। क्या वे एंड्रॉइड ऐप के समान थ्रेड पर चलते हैं? यदि यूआई फ़ंक्शन चलाने के लिए अधिक समय ले रहा है तो यूआई फ्रीज होगा?एंड्रॉइड जेएनआई फ़ंक्शन मुख्य थ्रेड पर चलते हैं?

उत्तर

13

जेएनआई कॉल सिंक्रोनस हैं, किसी भी अन्य जावा कॉल की तरह, आप थ्रेड को स्विच या स्पैन कर सकते हैं, लेकिन यदि आपने इसे निर्दिष्ट नहीं किया है, तो उन्हें उसी थ्रेड पर निष्पादित किया जाता है। इसलिए यदि आप यूआई थ्रेड से जेएनआई फ़ंक्शन को कॉल करते हैं, तो फ़ंक्शन लौटने तक इसे अवरुद्ध कर दिया जाएगा।

+0

स्पष्टीकरण – Shamy

+1

के लिए धन्यवाद चल रहा है जेएनआई_ऑनलोड किस धागे पर निष्पादित करता है? – fnc12

1

जेएनआई फ़ंक्शन एक ही थ्रेड में चल रहा है जो जेएनआई फ़ंक्शन को कॉल करता है।

यह है कि इस तरह, यदि आप एक सेवा में एक नया थ्रेड (थ्रेड ए) बनाते हैं, और धागा एक में एक JNI समारोह कहा जाता है, तो JNI थ्रेड ए में

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