Android實現點選兩次返回鍵和長按返回鍵退出應用實踐
雖然國慶節過了,玩的心還沒回來。
今天給大家分享一篇關於退出應用的知識點。大家都知道在大部分App中,退出應用程式都是以點選兩次返回鍵,並且控制連續點選的時間差,來提示使用者,提高App的應用體驗。
而長按返回鍵退出應用的場景目前國內App相對較少。本篇部落格的內容我將帶大家分別實現以上兩種方式。
1.點選兩次返回鍵退出應用
點選兩次返回鍵退出應用的核心在於控制使用者點選的時間差,通過判斷時間差來決定執行提示或者退出。既然是控制返回鍵,必然我們需要在onKeyDown的方法中來做處理。同時我們需要判斷時間差,就需要記錄此次點選的時間。
長按返回鍵的處理方式也有兩種:
(1)重寫onBackPressed方法
相信大家都知道,當我們點選返回鍵的時候,系統其實是會去呼叫onBackPressed方法。並且系統允許我們自己定製該方法的處理方式。所以我們在onBackPressed方法中可以去做時間差的判斷,來看核心程式碼:
@Override
public void onBackPressed() {
//1.點選的時間差如果大於2000,則提示使用者點選兩次退出
if(System.currentTimeMillis() - mExitTime > 2000) {
//2.儲存當前時間
mExitTime = System.currentTimeMillis();
//3.提示
showShortToast(R.string.str_exit_prompt);
} else {
//4.點選的時間差小於2000,呼叫父類onBackPressed方法執行退出。
super.onBackPressed();
}
}
(2)重寫onKeyDown
public boolean onKeyDown(int keyCode, KeyEvent event) {
//1.點選返回鍵條件成立if(keyCode == KeyEvent.KEYCODE_BACK
&& event.getAction() == KeyEvent.ACTION_DOWN
&& event.getRepeatCount() == 0) {
//2.點選的時間差如果大於2000,則提示使用者點選兩次退出if(System.currentTimeMillis() - mExitTime > 2000) {
//3.儲存當前時間
mExitTime = System.currentTimeMillis();
//4.提示
} else {
//5.點選的時間差小於2000,退出。
System.exit(0);
}
return true;
}
}
2.長按返回鍵退出應用
長按返回鍵的處理方式也有兩種:
(1)在dispatchKeyEvent中處理
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
//點選返回鍵並且是長按,則退出
if(event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.isLongPress()) {
System.exit(0);
return true;
}
return false;
}
(2)在onKeyDown中處理
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK) {
if(event.getRepeatCount() == 0) {
showShortToast("長按返回鍵退出");
} else {
System.exit(0);
}
}
}
getRepeatCount()方法的作用是獲取使用者點選返回鍵的次數, 0代表點選了一次,次數>=1時就代表長按,值越大說明按的時間越長。
兩種場景的退出方式,大家可以根據自己的實際情況選擇。
有問題的小夥伴留言給我~
相關文章
- Android 點選兩次返回鍵退出程式Android
- Android 實現點選兩次BACK鍵退出應用Android
- Android主介面連續兩次點選物理返回鍵退出應用功能實現Android
- Android實現首次點選返回鍵提示資訊,第二次點選退出應用Android
- AndroidStudio點選兩次返回鍵,退出APPAndroidAPP
- 點選兩次返回退出程式
- 兩次點選BACK鍵退出應用的效果
- Cordova + Vue 實現點選兩次退出應用Vue
- Android開發之連續點選返回鍵退出程式Android
- Android按下返回鍵,將應用退到後臺Android
- Flutter實戰之坑——按返回鍵回到手機桌面不退出appFlutterAPP
- android 返回鍵Android
- 使用Cordova –實現點選手機物理返回鍵時,應用進入後臺執行,而不是直接關閉!
- JavaScript 點選按鈕返回底部JavaScript
- 過載android返回鍵響應函式Android函式
- cocos creator(十三)android平臺返回鍵的監聽實現Android
- quick 3.2 android 返回鍵功能UIAndroid
- Android 模擬返回鍵功能Android
- Android 應用技巧: 手把手教你 優雅實現 “一鍵退出 App”AndroidAPP
- weex生成的單頁應用嵌入app中,點選物理返回鍵時如何返回上一個路由頁面,而不是直接退出單頁應用,回到原生app頁面APP路由
- 微信小程式開發中按下自己手機的返回按鍵是直接退出小程式而不是返回上級頁面微信小程式
- android短影片開發,點選兩次實現不同點選效果的實現方式Android
- jquery實現的點選返回頂部和底部特效詳解jQuery特效
- HarmonyOS 應用生命週期有哪些? 按返回鍵會呼叫哪些生命週期?
- JavaScript點選按鈕返回底部詳解JavaScript
- 點選返回頂部效果實現程式碼詳解
- Android-返回桌面?退出程式?Android
- 直播原始碼開發,Android 遮蔽返回鍵(後退鍵)原始碼Android
- 實現android按下Enter鍵便隱藏輸入鍵盤Android
- 12.2 實現鍵盤模擬按鍵
- js實現阻止指定鍵盤按鍵效果JS
- 重寫返回鍵(Fragment)Fragment
- 【唯實踐】容器環境應用一鍵拉起實踐
- uboot-cmd按鍵退出boot
- mui退出軟體點選兩次提示UI
- Android側滑返回分析和實現(不高仿微信)Android
- jquery實現的右鍵滑鼠點選事件jQuery事件
- C#實現的三種方式實現模擬鍵盤按鍵C#