मैं एक विशिष्ट मिडलवेयर (महत्व के नहीं) का उपयोग कर एंड्रॉइड में एक टीवी-रिमोट सिम्युलेटर ऐप विकसित कर रहा हूं।बटन दबाए जाने पर बार-बार कुछ कैसे करें?
वॉल्यूम बटन (वॉल्यूम + और वॉल्यूम-) के मामले में, जो मैं करने की कोशिश कर रहा हूं वह है कि बटन दबाए जाने पर बार-बार "वॉल्यूम अप" सिग्नल भेजना है।
है यही कारण है कि मैं पिछले पर की कोशिश की (बटनों में से एक के लिए कोड, अन्य नामों को छोड़ कर एक होना चाहिए):
एक बूलियन चर
boolean pressedUp = false;
एक घोषित घोषित निम्नलिखित AsyncTask के साथ आंतरिक वर्ग:
class SendVolumeUpTask extends AsyncTask<Void, Void, Void> { @Override protected Void doInBackground(Void... arg0) { while(pressedUp) { SendVolumeUpSignal(); } return null; }
}
बटन को श्रोता जोड़ें:
final Button buttonVolumeUp = (Button) findViewById(R.id.volup); buttonVolumeUp.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: if(pressedUp == false){ pressedUp = true; new SendVolumeUpTask().execute(); } case MotionEvent.ACTION_UP: pressedUp = false; } return true; } });
मैं भी Increment-Decrement counter while button is pressed में के रूप में सरल धागे के साथ की कोशिश की है लेकिन न तो काम किया। एप्लिकेशन शेष बटन (चैनल, इत्यादि) के लिए बारीकी से काम करता है, लेकिन वॉल्यूम बदलना पूरी तरह अनदेखा कर दिया जाता है।
धन्यवाद, अब सिग्नल भेजे जाते हैं। हालांकि, यह एक छोटी दबाने की अवधि के लिए बहुत से सिग्नल भेजता है। शायद एक काउंटर काम करना चाहिए। – Truncarlos
मैं SendVolumeUpSignal() को कॉल के बीच अंतराल रखने की अनुशंसा करता हूं; उदाहरण के लिए इसे आज़माएं: 'जबकि (दबाए गए) { SendVolumeUpSignal(); थ्रेड.sleep (100);} ' –
उपयोगी। धन्यवाद: डी – Truncarlos