2010-11-02 13 views

उत्तर

12

आपको जावा एपीआई फ़ंक्शन को कॉल करके इसे कॉल करने की आवश्यकता होगी - इरादों के लिए कोई जेएनआई इंटरफ़ेस नहीं है।

पहले Intent के लिए कक्षा को देखें, फिर इरादे बनाने और उन्हें प्रसारित करने के तरीकों को देखें, और उन्हें कॉल करें।

संपादित करें: यहां अपूर्ण उदाहरण है। jniEnv आपके सभी जेएनआई कार्यों में पारित किया गया है।

jclass activityClass = jniEnv->FindClass("android/app/Activity"); 
jmethodID startAcitivtyMethod = jniEnv->GetMethodID(activityClass , "startActivity", "(Landroid/content/Intent;)V"); 
jniEnv->CallVoidMethod(yourActivityObject, startAcitivityMethod, yourIntentObject); 
+0

बहुत अच्छी व्याख्या। भले ही वह पूरा विवरण न हो, फिर भी आप +1 के लायक हैं। –

+1

लेकिन अगर मैं कॉलबैक (किसी अन्य थ्रेड में) से कॉल करना चाहता हूं, तो मुझे किस मामले में jniEnv – Juude

+0

नहीं मिल सकता है क्या इस तरह का कोई समाधान गैर-जेनी के लिए है? – RocketRandom

0

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

0

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

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