Làm cách nào để tắt nút quay lại trong Android khi đăng xuất ứng dụng?
Làm cách nào để tắt nút quay lại trong Android khi đăng xuất ứng dụng?
Câu trả lời:
Ghi đè phương thức onBackPression và không làm gì nếu bạn muốn xử lý nút quay lại trên thiết bị.
@Override
public void onBackPressed() {
if (shouldAllowBack()) {
super.onBackPressed();
} else {
doSomething();
}
}
Nếu tìm kiếm một api cấp 2.0 cao hơn và cao hơn thì điều này sẽ hoạt động rất tốt
@Override
public void onBackPressed() {
// Do Here what ever you want do on back press;
}
Nếu tìm kiếm cấp độ api Android lên đến 1.6.
@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);
}
Viết mã ở trên trong Hoạt động của bạn để ngăn nút quay lại
Bạn có thể làm theo cách đơn giản này Đừng gọi super.onBackPression ()
@Override
public void onBackPressed() {
// super.onBackPressed();
// Not calling **super**, disables back button in current screen.
}
Chỉ cần ghi đè phương thức onBackPression () .
@Override
public void onBackPressed() { }
Tôi đang sử dụng nó.............
@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..............
}
Nếu bạn muốn đảm bảo ứng dụng máy khách Android của bạn được đăng xuất khỏi một số máy chủ trước khi Hoạt động của bạn bị giết -> đăng xuất với một dịch vụ trên luồng của chính nó (đó là những gì bạn phải làm dù sao).
Vô hiệu hóa nút quay lại sẽ không giải quyết được gì cho bạn. Bạn vẫn sẽ gặp vấn đề tương tự khi người dùng nhận được một cuộc gọi điện thoại chẳng hạn. Khi nhận được một cuộc gọi điện thoại, hoạt động của bạn có nhiều khả năng bị giết trước khi nhận được câu trả lời đáng tin cậy từ mạng.
Đó là lý do tại sao bạn nên để một dịch vụ chờ đợi chủ đề của chính nó cho câu trả lời từ mạng và sau đó làm cho nó thử lại nếu nó không thành công. Dịch vụ Android không chỉ ít có khả năng bị giết trước khi nhận được câu trả lời, mà nếu nó thực sự bị giết trước khi hoàn thành công việc, nó luôn có thể được hồi sinh bởi AlertManager để thử lại.
Chỉ cần ghi đè phương thức onBackPression () và không cần gọi siêu hạng của phương thức onBackPression hoặc các phương thức khác ..
@Override
public void onBackPressed()
{
}
Hoặc chuyển hoạt động hiện tại của bạn vào phương thức onBackPression ().
@Override
public void onBackPressed()
{
startActivity(new Intent(this, myActivity.class));
finish();
}
Thay thế tên hoạt động yêu cầu của bạn thành myActivity.
nếu bạn đang sử dụng phân đoạn thì trước hết hãy gọi phương thức callParentMethod ()
public void callParentMethod(){
context.onBackPressed(); // instead of context use getActivity or something related
}
sau đó gọi phương thức rỗng
@Override
public void onBackPressed()
{
}
nếu bạn đang sử dụng FragmentActivity
. sau đó làm như thế này
cuộc gọi đầu tiên này bên trong của bạn Fragment
.
public void callParentMethod(){
getActivity().onBackPressed();
}
và sau đó gọi onBackPressed
phương thức bên cạnh FragmentActivity
lớp cha của bạn .
@Override
public void onBackPressed() {
//super.onBackPressed();
//create a dialog to ask yes no question whether or not the user wants to exit
...
}
Bạn có thể ghi đè onBackPressed()
phương thức trong hoạt động của mình và xóa cuộc gọi đến siêu hạng.
@Override
public void onBackPressed() {
//remove call to the super class
//super.onBackPressed();
}
Bạn chỉ cần ghi đè phương thức cho nút quay lại. Bạn có thể để trống phương thức nếu bạn muốn để không có gì xảy ra khi bạn nhấn nút quay lại. Xin vui lòng xem mã dưới đây:
@Override
public void onBackPressed()
{
// Your Code Here. Leave empty if you want nothing to happen on back press.
}
Ngoài hình thức hai phương pháp này từ câu trả lời ở trên.
onBackPression () (API cấp 5, Android 2.0)
onKeyDown () (API cấp 1, Android 1.0)
Bạn cũng có thể ghi đè dispatchKeyEvent()
(API cấp 1, Android 1.0) như thế này,
dispatchKeyEvent()
(API cấp 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);
}
Vô hiệu hóa mông lại trong Android
@Override
public void onBackPressed() {
return;
}
Thử cái này:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
return super.onKeyDown(keyCode, event);
}