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
- AndroidStudio點選兩次返回鍵,退出APPAndroidAPP
- Cordova + Vue 實現點選兩次退出應用Vue
- Android按下返回鍵,將應用退到後臺Android
- Flutter實戰之坑——按返回鍵回到手機桌面不退出appFlutterAPP
- 使用Cordova –實現點選手機物理返回鍵時,應用進入後臺執行,而不是直接關閉!
- JavaScript 點選按鈕返回底部JavaScript
- weex生成的單頁應用嵌入app中,點選物理返回鍵時如何返回上一個路由頁面,而不是直接退出單頁應用,回到原生app頁面APP路由
- android短影片開發,點選兩次實現不同點選效果的實現方式Android
- Android-返回桌面?退出程式?Android
- android PopupWindow監聽返回鍵無效Android
- 按關鍵字搜尋dangdang商品返回展示
- 直播原始碼開發,Android 遮蔽返回鍵(後退鍵)原始碼Android
- HarmonyOS 應用生命週期有哪些? 按返回鍵會呼叫哪些生命週期?
- 12.2 實現鍵盤模擬按鍵
- JavaScript點選按鈕返回底部詳解JavaScript
- Android側滑返回分析和實現(不高仿微信)Android
- 【唯實踐】容器環境應用一鍵拉起實踐
- 重寫返回鍵(Fragment)Fragment
- Qt全屏顯示和按鍵ESC退出全屏QT
- H5頁面監聽Android物理返回鍵H5Android
- 用python實現列印省、市、縣三級選單 可返回上一級 可隨時退出程式Python
- 夸克APP端智慧:文件關鍵點檢測實踐與應用APP
- QuitAll for Mac(應用程式一鍵退出)UIMac
- 如何一鍵退出所有應用程式?
- deeplink跳轉快應用返回出現兩次系統新增桌面的彈框
- 向Mysql主鍵自增長表中新增資料並返回主鍵MySql
- Java兩種方式實現連結串列的刪除,返回頭結點Java
- Android之點選兩次才響應onclick方法Android
- 卡片跳轉快應用指定頁面,如何點返回直接退出快應用回到卡片
- windows11 始終右鍵選單顯示更多選項/右鍵選單返回舊版Windows
- Qt右鍵選單實現QT
- 京東按關鍵字搜尋商品 API 返回值說明API
- Android快應用實踐Android
- Android Studio 常用快捷鍵(超實用!!!)Android
- android 7.1 遮蔽按壓兩次電源鍵(KEYCODE_POWER)開啟相機Android
- 用Kotlin實現Android點選事件的方法KotlinAndroid事件
- Mac系統如何一鍵返回桌面?Mac
- 阿里巴巴按關鍵字搜尋商品 API 返回值說明阿里API