Uygulamadan çıkış yaparken android'de geri düğmesini nasıl devre dışı bırakabilirim?
Uygulamadan çıkış yaparken android'de geri düğmesini nasıl devre dışı bırakabilirim?
Yanıtlar:
OnBackPressed yöntemini geçersiz kılın ve cihazdaki geri düğmesini işlemek istiyorsanız hiçbir şey yapmayın.
@Override
public void onBackPressed() {
if (shouldAllowBack()) {
super.onBackPressed();
} else {
doSomething();
}
}
Daha yüksek bir api seviyesi 2.0 ve üstü arıyorsanız bu harika çalışır
@Override
public void onBackPressed() {
// Do Here what ever you want do on back press;
}
1.6'ya kadar android api seviyesi arıyorsanız.
@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);
}
Geri düğmesine basılmasını önlemek için Aktivitenize yukarıdaki kodu yazın
Bu basit şekilde yapabilirsiniz super.onBackPressed () öğesini çağırma
@Override
public void onBackPressed() {
// super.onBackPressed();
// Not calling **super**, disables back button in current screen.
}
Basitçe onBackPressed () yöntemini geçersiz kılın .
@Override
public void onBackPressed() { }
Onu kullanıyorum.............
@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..............
}
Faaliyetiniz öldürülmeden önce android istemci uygulamanızın bazı sunucudan çıkış yaptığından emin olmak istiyorsanız -> kendi iş parçacığında bir hizmetle çıkış yapın (yine de yapmanız gereken şey budur).
Geri düğmesini devre dışı bırakmak sizin için hiçbir şeyi çözmez. Kullanıcı bir telefon çağrısı aldığında da aynı sorunu yaşarsınız. Bir telefon çağrısı alındığında, etkinliğiniz ağdan güvenilir bir yanıt almadan önce öldürülme şansına sahiptir.
Bu nedenle, bir hizmetin ağdan gelen yanıt için kendi iş parçacığını beklemesine ve ardından başarılı olmazsa yeniden denemesine izin vermelisiniz. Android hizmeti sadece bir cevap almadan önce öldürülme olasılığı daha az değil, aynı zamanda işi bitirmeden önce gerçekten öldürülürse, AlarmManager tarafından tekrar denemek için her zaman canlandırılabilir.
Sadece onBackPressed () yöntemini geçersiz kılın ve onBackPressed yönteminin veya başkalarının süper sınıfını çağırmanıza gerek yok.
@Override
public void onBackPressed()
{
}
Veya geçerli etkinliğinizi onBackPressed () yöntemine aktarın.
@Override
public void onBackPressed()
{
startActivity(new Intent(this, myActivity.class));
finish();
}
Etkinlik adınızı myActivity olarak değiştirin.
fragman kullanıyorsanız, her şeyden önce callParentMethod () yöntemini çağırın
public void callParentMethod(){
context.onBackPressed(); // instead of context use getActivity or something related
}
sonra boş yöntemi çağırın
@Override
public void onBackPressed()
{
}
kullanıyorsanız FragmentActivity
. o zaman böyle yap
ilk ara Bu senin içinde Fragment
.
public void callParentMethod(){
getActivity().onBackPressed();
}
ve sonra onBackPressed
üst FragmentActivity
sınıfınızın yan tarafındaki Call yöntemini
@Override
public void onBackPressed() {
//super.onBackPressed();
//create a dialog to ask yes no question whether or not the user wants to exit
...
}
onBackPressed()
Etkinliğinizdeki yöntemi geçersiz kılabilir ve süper sınıfa yapılan çağrıyı kaldırabilirsiniz.
@Override
public void onBackPressed() {
//remove call to the super class
//super.onBackPressed();
}
Sadece geri düğmesi yöntemini geçersiz kılmanız gerekir. Geri düğmesine bastığınızda hiçbir şey olmayacak şekilde yöntemi boş bırakabilirsiniz. Lütfen aşağıdaki koda bir göz atın:
@Override
public void onBackPressed()
{
// Your Code Here. Leave empty if you want nothing to happen on back press.
}
Bunun dışında yukarıdaki iki yöntem de bu cevabı içermektedir.
onBackPressed () (API Seviye 5, Android 2.0)
onKeyDown () (API Seviye 1, Android 1.0)
Ayrıca dispatchKeyEvent()
(API Seviye 1, Android 1.0) şu şekilde geçersiz kılabilirsiniz ,
dispatchKeyEvent()
(API Seviye 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'de geri buttton'u devre dışı bırak
@Override
public void onBackPressed() {
return;
}
Bunu dene:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
return super.onKeyDown(keyCode, event);
}