मैंने देखा है कि 'बैक' अनुरोध उस बिंदु पर किया जाता था जब उपयोगकर्ता 'बैक' कुंजी पर नीचे दबाता था लेकिन किसी बिंदु पर इसे बदल दिया गया था ताकि 'बैक' अनुरोध किया जा सके इसके बजाय बिंदु पर 'बैक' कुंजी जारी की जाती है। (अगर मैं गलत हूं तो मुझे सुधारें!) क्या किसी को पता है कि किस एसडीके (या एपीआई स्तर) से वास्तव में यह परिवर्तन प्रभावी किया गया था? मुझे लगता है कि यह एसडीके 2.0 (एपीआई स्तर 5) था और इसलिए मेरी गतिविधि में कोड निम्नानुसार है लेकिन निश्चित होना चाहता हूं ...

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) 
{
 if (keyCode == KeyEvent.KEYCODE_BACK)
 {
  if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR)
   handleBackRequest();

  return true;
 }

 return super.onKeyDown(keyCode, event);        
}

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) 
{
 if (keyCode == KeyEvent.KEYCODE_BACK)
 {
  if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.ECLAIR)
   handleBackRequest();

  return true;
 }

 return super.onKeyUp(keyCode, event);
}
0
Adil Hussain 10 जिंदा 2012, 16:43

2 जवाब

सबसे बढ़िया उत्तर

मेरी पिछली पोस्ट में कोड के साथ मुझे कुछ अवांछित व्यवहार मिल रहा था (जब संवाद, एंड्रॉइड कीबोर्ड इत्यादि दिखाई दे रहे थे) और कॉमन्सवेयर की सलाह पर, मेरे कोड को निम्नलिखित में बदल दिया और ऐसा लगता है कि यह विभिन्न एसडीके के लिए ठीक काम कर रहा है ...

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) 
{
 if (keyCode == KeyEvent.KEYCODE_BACK
     && android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR)
 {
  onBackPressed();
  return true;
 }

 return super.onKeyDown(keyCode, event);        
}

@Override
public void onBackPressed()
{
 // handle back request here
}

... कृपया मुझे बताएं कि क्या यहां कुछ भी ठीक नहीं है!

0
Adil Hussain 12 जिंदा 2012, 17:54

Android 2.0 और उच्चतर के लिए onBackPressed() का उपयोग करें। Android 1.6 के लिए onKeyDown() का उपयोग करें।

1
CommonsWare 10 जिंदा 2012, 17:33
क्या Android के बाद में संस्करणों के लिए onKeyUp(int, KeyEvent) विधि में 'वापस' अनुरोध को संभालना onBackPressed() पद्धति में इसे संभालने के समान नहीं है? और क्या यह 2.0 ऊपर की ओर है कि मुझे अलग व्यवहार करने की आवश्यकता है?
 – 
Adil Hussain
10 जिंदा 2012, 17:55
@AdilHussain: AFAIK, onKeyUp() बैक बटन के लिए कभी भी उपयुक्त नहीं था।
 – 
CommonsWare
10 जिंदा 2012, 21:41
मैं थोड़ा उलझन में हूँ। onKeyUp(int, KeyEvent) का डिफ़ॉल्ट कार्यान्वयन नहीं है (जब 'बैक' कुंजी जारी की जाती है; Android sdk के नवीनतम संस्करणों में) केवल onBackPressed() विधि को कॉल करने के लिए जैसे कि यह इस बिंदु पर है (यानी जब 'बैक' कुंजी जारी की जाती है) कि 'बैक' अनुरोध किया जाता है?
 – 
Adil Hussain
10 जिंदा 2012, 22:11
1
@आदिल हुसैन: शायद - मैंने देखा नहीं है। मैं आपको केवल वही बता रहा हूं जो Google ने हमें करने के लिए कहा है। Google ने हमें Android 2.0 और उच्चतर के लिए onBackPressed() का उपयोग करने और Android 1.6 और उससे कम के लिए onKeyDown() का उपयोग करने के लिए कहा है। इसका समर्थन गूगल करेगा। Google onKeyUp() के आपके नियोजित उपयोग का समर्थन कर सकता है या नहीं भी कर सकता है।
 – 
CommonsWare
10 जिंदा 2012, 22:16
ठंडा। कल इसे आजमाएंगे और आपको बताएंगे कि मैं कैसे आगे बढ़ता हूं। धन्यवाद।
 – 
Adil Hussain
10 जिंदा 2012, 23:37