电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Android Studio finish()方法的使用與解決app點擊“返回”(直接退出)

瀏覽:5日期:2022-09-24 18:27:01

在這里,我們將用到finish(),簡單介紹一下它的使用:

finish()官方解析:Call this when your activity is done and should be closed. The ActivityResult is propagated back to whoever launched you via onActivityResult().“當你打開的Activity已經執行完成并且需要被關閉的時候可以調用這個方法,當你按返回的時候,它將返回到當前Activity的發起者。”(不過這一段我不是很理解,我還是相信自己的實踐吧。)

一、問題的提出

2019年十二月,我遇到了一個問題。在我做一個android app的時候,我有A B C 三個界面,其中A為主界面,預設兩種情況:

①從A跳轉(intent)到B 然后從 B跳轉到A。點擊返回鍵的結果是:A→B,也就是說點擊“返回”又從主界面跳轉到B了,顯然這樣的用戶體驗非常糟糕。②從A跳轉(intent)到B 然后從B跳轉到C。點擊返回的結果是:C→B→A,然而我要當需求是“點擊返回,直接從C跳轉到A”。結果顯然,這不符合產品需求。為此,我用了finish()函數來解決這個問題。效果舉例:在C中添加finish()之后,點擊“返回”,會直接回到主界面。這樣講可能很難理解,舉個例子吧:在主界面A 點擊“竹海明珠”進入 界面B

Android Studio finish()方法的使用與解決app點擊“返回”(直接退出)Android Studio finish()方法的使用與解決app點擊“返回”(直接退出)

點擊左上角的自定義的back按鈕,會回到主界面。但是在主界面再次點擊 竹海明珠,又再次點擊手機系統自帶的返回按鈕后,界面再次回到主界面。這時候在主界面上,你點擊返回按鈕,不是退出APP回到桌面了,而是回到了竹海明珠界面。

二、activity多次回跳問題的解決

為了解決這個問題,可以在你跳轉界面的Intent中下面加一個finish函數。如:(1)先講一下**“問題二**”我是在主界面中加了跳轉到“竹海明珠”的intent:

zhuH.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent_zh = new Intent(MainActivity.this,zhuhai.class); startActivity(intent_zh); finish(); } }); 這時候,在“竹海明珠“界面中點擊“返回(系統自帶)”按鈕的時候,APP不會再返回到主界面,而是會直接退出。

(2)顯然這不能解決activity多次回跳的問題。那么利用finish()的原理——“它將返回到當前Activity的發起者”,我們應當將finish()加在跳轉到左上角自定義的back按鈕的代碼中:zhuhaimingzhu.java中:

//控制返回按鈕 back = findViewById(R.id.back); back.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(zhuhai.this,MainActivity.class); startActivity(intent); finish();

這樣,它就會直接回到主界面了。于此同時問題二也解決了,直接將問題二中的finish()給注釋掉就好了,其它activity也是同樣的操作。

問題產生的思路:為什么我會在“竹海明珠”以及同級別下的activity中加finish()呢?這是因為我有一個Activity多次回跳的問題沒有解決,同時還有一個問題是,在我于主界面中點擊返回按鈕后,會直接退出app,這樣的用戶體驗非常不好,為了保持體驗的一致性,我索性將二級activity(竹海明珠、洪崖丹井等等)全部設置finish(),這樣的話,只要在二級及以上頁面中,只要點擊了返回按鈕就會直接退出APP,但用戶可以在我自定義的左上角的back按鈕返回activity界面。但,這舒適無奈之舉,這樣的用戶體驗效果確實不好。。。

三、點擊返回按鈕不退出app

那么如何解決,點擊返回按鈕不直接退出app呢?設計思路1.點擊兩次返回按鈕才退出app2.點擊返回按鈕回到桌面但是不退出app,使app在后臺運行

第一種:點擊兩次按鈕退出app

設計:①重寫onBackPressed方法onBackPressed() 捕獲后退鍵按鈕back的信息②currentTimeMills 返回毫秒級別的系統時間③放在oncreate方法下

private static final int TIME_EXIT=2000; private long mBackPressed; @Override public void onBackPressed(){ //onBackPressed() 捕獲后退鍵按鈕back的信息 if(mBackPressed+TIME_EXIT>System.currentTimeMillis()){ //currentTimeMillis,返回毫秒級別的系統時間 super.onBackPressed(); return; }else{ Toast.makeText(this,'再點擊一次返回退出程序', Toast.LENGTH_SHORT ).show(); mBackPressed=System.currentTimeMillis(); } }

第二種:單擊回到桌面,APP在后臺運行

單擊回到桌面,app仍在后臺運行 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { Intent home = new Intent(Intent.ACTION_MAIN); home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); home.addCategory(Intent.CATEGORY_HOME); startActivity(home); return true; } return super.onKeyDown(keyCode, event); }

總結

到此這篇關于Android Studio finish()方法的使用與解決app點擊“返回”(直接退出)的文章就介紹到這了,更多相關Android Studio finish()方法內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Android
相關文章:
主站蜘蛛池模板: 招商帮-一站式网络营销服务|互联网整合营销|网络推广代运营|信息流推广|招商帮企业招商好帮手|搜索营销推广|短视视频营销推广 | 中医中药治疗血小板减少-石家庄血液病肿瘤门诊部 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 西装定制/做厂家/公司_西装订做/制价格/费用-北京圣达信西装 | 编织人生 - 权威手工编织网站,编织爱好者学习毛衣编织的门户网站,织毛衣就上编织人生网-编织人生 | 香蕉筛|直线|等厚|弧形|振动筛|香蕉筛厂家-洛阳隆中重工 | 北京公积金代办/租房发票/租房备案-北京金鼎源公积金提取服务中心 | 拉力测试机|材料拉伸试验机|电子拉力机价格|万能试验机厂家|苏州皖仪实验仪器有限公司 | 质构仪_鱼糜弹性仪-上海腾拔仪器科技有限公司 | 泰安办公家具-泰安派格办公用品有限公司| 安全阀_弹簧式安全阀_美标安全阀_工业冷冻安全阀厂家-中国·阿司米阀门有限公司 | 江苏齐宝进出口贸易有限公司| wika威卡压力表-wika压力变送器-德国wika代理-威卡总代-北京博朗宁科技 | 医养体检包_公卫随访箱_慢病随访包_家签随访包_随访一体机-济南易享医疗科技有限公司 | 奥因-光触媒除甲醛公司-除甲醛加盟公司十大品牌 | 液氮罐_液氮容器_自增压液氮罐-北京君方科仪科技发展有限公司 | 传爱自考网_传爱自学考试网| 动物解剖台-成蚊接触筒-标本工具箱-负压实验台-北京哲成科技有限公司 | 槽钢冲孔机,槽钢三面冲,带钢冲孔机-山东兴田阳光智能装备股份有限公司 | 圆窗水平仪|伊莉莎冈特elesa+ganter| 【孔氏陶粒】建筑回填陶粒-南京/合肥/武汉/郑州/重庆/成都/杭州陶粒厂家 | 服务器之家 - 专注于服务器技术及软件下载分享 | 车间除尘设备,VOCs废气处理,工业涂装流水线,伸缩式喷漆房,自动喷砂房,沸石转轮浓缩吸附,机器人喷粉线-山东创杰智慧 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | Trimos测长机_测高仪_TESA_mahr,WYLER水平仪,PWB对刀仪-德瑞华测量技术(苏州)有限公司 | 广州工业氧气-工业氩气-工业氮气-二氧化碳-广州市番禺区得力气体经营部 | 拉卡拉POS机官网 - 官方直营POS机办理|在线免费领取 | 深圳美安可自动化设备有限公司,喷码机,定制喷码机,二维码喷码机,深圳喷码机,纸箱喷码机,东莞喷码机 UV喷码机,日期喷码机,鸡蛋喷码机,管芯喷码机,管内壁喷码机,喷码机厂家 | PAS糖原染色-CBA流式多因子-明胶酶谱MMP-上海研谨生物科技有限公司 | 绿萝净除甲醛|深圳除甲醛公司|测甲醛怎么收费|培训机构|电影院|办公室|车内|室内除甲醛案例|原理|方法|价格立马咨询 | 天津中都白癜风医院_天津白癜风医院_天津治疗白癜风 | 气体热式流量计-定量控制流量计(空气流量计厂家)-湖北南控仪表科技有限公司 | 三佳互联一站式网站建设服务|网站开发|网站设计|网站搭建服务商 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 山东PE给水管厂家,山东双壁波纹管,山东钢带增强波纹管,山东PE穿线管,山东PE农田灌溉管,山东MPP电力保护套管-山东德诺塑业有限公司 | 婚博会2024时间表_婚博会门票领取_婚博会地址-婚博会官网 | 微信聊天记录恢复_手机短信删除怎么恢复_通讯录恢复软件下载-快易数据恢复 | 世界箱包品牌十大排名,女包小众轻奢品牌推荐200元左右,男包十大奢侈品牌排行榜双肩,学生拉杆箱什么品牌好质量好 - Gouwu3.com | 上海佳武自动化科技有限公司 | 郑州水质检测中心_井水检测_河南废气检测_河南中环嘉创检测 | 不锈钢电动球阀_气动高压闸阀_旋塞疏水调节阀_全立阀门-来自温州工业阀门巨头企业 | 铁盒_铁罐_马口铁盒_马口铁罐_铁盒生产厂家-广州博新制罐 |