android - How would I implement a handler here? -


मेरे पास 2 वर्ग GLLayer और GLCamTest है। मैं GLCamTest ...

  सार्वजनिक बिटमैप extractimage (int pos) में स्थित एक विधि को चलाने का प्रयास कर रहा हूं {LocationData tweets; ट्वीट्स = नया स्थान डेटा (यह); SQLiteDatabase डीबी = tweets.getWritableDatabase (); // डेटा का चयन करें स्ट्रिंग क्वेरी = "चुनें * से ट्वीट्स;"; कर्सर mcursor = db.rawQuery (क्वेरी, रिक्त); // निर्दिष्ट स्थान पर जाएं mcursor.moveToPosition (पीओएस); // इसे एक बाइट अर्रे बाइट के रूप में प्राप्त करें [] imageByteArray = mcursor.getBlob (7); // कर्सर की आवश्यकता नहीं है mcursor.close (); // इसे वापस एक छवि में परिवर्तित करें ByteArrayInputStream imageStream = नए बाइटअरेइनपुटस्ट्रीम (imageByteArray); बिटमैप theImage = BitmapFactory.decodeStream (छविस्ट्रीम); वापसी छवि; }  

मैं GLLayer से किसी धागे पर चलने के लिए देख रहा हूं, लेकिन जो समझता हूं वह मुझे एक हैंन्डलर की आवश्यकता है ..

 < कोड> सार्वजनिक शून्य चलाने () {GLCamTest cam = नया GLCamTest (); छवि = cam.extractimage (q); }  

मैं थ्रेड को भीतर से शुरू कर रहा हूँ public void onDrawFrame (GL10 gl) { मेरा प्रश्न है कि मैं कहता हूं कि हैंडलर कैसे लागू होगा? मैंने पढ़ा है, लेकिन मैं अभी भी सच नहीं समझता कि मैं इसे कैसे लागू करूं। क्या कोई मेरी सहायता कर सकता है?

दो बातें एक यह है कि GLThread कभी नहीं Looper.prepare () कहा जाता है इसलिए आप उस थ्रेड के अंदर एक हैंडलर नहीं जोड़ सकते / बना सकते हैं। (मुख्य UI थ्रेड के अंदर होना चाहिए)।

दो, एक हैंडलर की आवश्यकता नहीं है। अगर आप बस रेंडर धागा के अंदर कोड निष्पादित करना चाहते हैं ...

  GLSurfaceView mySurface = mMyCustomSurfaceImageErlierTheRendererAlready अटैच किया गया; Runnable myRunnable = एमएमयूआरयूनेबलहैं कहीं कहीं; mySurface.queueEvent (myRunnable);  

ड्रॉफ़्रेम विधि को अगले रेंडरिंग पास पर कॉल होने से पहले रनरेबल को अपने रेंडर धागे के भीतर निष्पादित किया जाएगा।


Comments