एप्लिकेशन लॉग आउट करते समय एंड्रॉइड में बैक बटन को कैसे अक्षम करें?
एप्लिकेशन लॉग आउट करते समय एंड्रॉइड में बैक बटन को कैसे अक्षम करें?
जवाबों:
OnBackPressed विधि को ओवरराइड करें और डिवाइस पर बैक बटन को संभालने के लिए कुछ भी न करें।
@Override
public void onBackPressed() {
if (shouldAllowBack()) {
super.onBackPressed();
} else {
doSomething();
}
}
यदि उच्चतर स्तर 2.0 और इसके बाद के संस्करण की तलाश में यह बहुत अच्छा होगा
@Override
public void onBackPressed() {
// Do Here what ever you want do on back press;
}
अगर 1.6 के स्तर तक Android एपीआई स्तर की तलाश है।
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//preventing default implementation previous to android.os.Build.VERSION_CODES.ECLAIR
return true;
}
return super.onKeyDown(keyCode, event);
}
बैक बटन दबाए जाने को रोकने के लिए अपनी गतिविधि में उपरोक्त कोड लिखें
आप इसे सरल तरीके से कर सकते हैं Super.onBackPressed () कॉल न करें
@Override
public void onBackPressed() {
// super.onBackPressed();
// Not calling **super**, disables back button in current screen.
}
बस onBackPressed () विधि को ओवरराइड करें ।
@Override
public void onBackPressed() { }
मैं इसका उपयोग कर रहा हूँ …………।
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_BACK)
Toast.makeText(getApplicationContext(), "back press",
Toast.LENGTH_LONG).show();
return false;
// Disable back button..............
}
यदि आप यह सुनिश्चित करना चाहते हैं कि आपकी गतिविधि समाप्त होने से पहले आपका एंड्रॉइड क्लाइंट एप्लिकेशन कुछ सर्वर से लॉग आउट हो जाए -> अपने स्वयं के थ्रेड पर एक सेवा के साथ लॉग आउट करें (वैसे भी आप ऐसा करने वाले हैं)।
बैक बटन को अक्षम करने से आपके लिए कुछ भी हल नहीं होगा। उदाहरण के लिए उपयोगकर्ता द्वारा फ़ोन कॉल प्राप्त करने पर आपको अभी भी वही समस्या होगी। जब एक फोन कॉल प्राप्त होता है, तो आपकी गतिविधि को नेटवर्क से विश्वसनीय उत्तर प्राप्त करने से पहले मारे जाने की अधिक संभावना होती है।
इसलिए आपको नेटवर्क से जवाब के लिए किसी सेवा को अपने स्वयं के थ्रेड पर प्रतीक्षा करने देना चाहिए, और यदि यह सफल नहीं होता है तो इसे फिर से प्रयास करें। एंड्रॉइड सर्विस न केवल एक जवाब वापस पाने से पहले मारे जाने की बहुत कम संभावना है, बल्कि नौकरी खत्म करने से पहले इसे वास्तव में मार दिया जाना चाहिए, इसे फिर से प्रयास करने के लिए अलार्ममैन द्वारा पुनर्जीवित किया जा सकता है।
बस onBackPressed () विधि को ओवरराइड करें और onBackPressed method या अन्य के सुपर क्लास को कॉल करने की आवश्यकता नहीं है।
@Override
public void onBackPressed()
{
}
या onBackPressed () पद्धति में अपनी वर्तमान गतिविधि पास करें।
@Override
public void onBackPressed()
{
startActivity(new Intent(this, myActivity.class));
finish();
}
अपनी आवश्यकता गतिविधि का नाम myActivity में बदलें।
यदि आप विखंडन का उपयोग कर रहे हैं तो सबसे पहले callParentMethod () विधि को कॉल करें
public void callParentMethod(){
context.onBackPressed(); // instead of context use getActivity or something related
}
तो खाली विधि को बुलाओ
@Override
public void onBackPressed()
{
}
यदि आप उपयोग कर रहे हैं FragmentActivity
। फिर ऐसे करें
पहले इसे अपने अंदर बुलाओ Fragment
।
public void callParentMethod(){
getActivity().onBackPressed();
}
और फिर onBackPressed
अपने पैरेंट FragmentActivity
क्लास के पक्ष में कॉल विधि ।
@Override
public void onBackPressed() {
//super.onBackPressed();
//create a dialog to ask yes no question whether or not the user wants to exit
...
}
आप onBackPressed()
अपनी गतिविधि में विधि को ओवरराइड कर सकते हैं और कॉल को सुपर क्लास में निकाल सकते हैं ।
@Override
public void onBackPressed() {
//remove call to the super class
//super.onBackPressed();
}
आपको बस बैक बटन के लिए विधि को ओवरराइड करना होगा। आप चाहें तो विधि को खाली छोड़ सकते हैं ताकि जब आप बैक बटन दबाएंगे तो कुछ नहीं होगा। कृपया नीचे दिए गए कोड को देखें:
@Override
public void onBackPressed()
{
// Your Code Here. Leave empty if you want nothing to happen on back press.
}
उपरोक्त उत्तर से इन दो विधियों के अलावा।
onBackPressed () (API स्तर 5, Android 2.0)
onKeyDown () (API स्तर 1, Android 1.0)
आप इस तरह dispatchKeyEvent()
(API Level 1, Android 1.0) को भी ओवरराइड कर सकते हैं ,
dispatchKeyEvent()
(एपीआई स्तर 1, Android 1.0)
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
// TODO Auto-generated method stub
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
return true;
}
return super.dispatchKeyEvent(event);
}
Android में वापस बटन को अक्षम करें
@Override
public void onBackPressed() {
return;
}
इसे इस्तेमाल करे:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
return super.onKeyDown(keyCode, event);
}