亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2020年04月13日 16:43:38   作者:一種天氣  
這篇文章主要介紹了Android Studio finish()方法的使用與解決app點擊“返回”(直接退出),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

在這里,我們將用到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已經執(zhí)行完成并且需要被關閉的時候可以調用這個方法,當你按返回的時候,它將返回到當前Activity的發(fā)起者?!?br /> (不過這一段我不是很理解,我還是相信自己的實踐吧。)

一、問題的提出

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

在這里插入圖片描述
在這里插入圖片描述

點擊左上角的自定義的back按鈕,會回到主界面。
但是在主界面再次點擊 竹海明珠,又再次點擊手機系統(tǒng)自帶的返回按鈕后,界面再次回到主界面。
這時候在主界面上,你點擊返回按鈕,不是退出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();
 }
 });
 這時候,在“竹海明珠“界面中點擊“返回(系統(tǒng)自帶)”按鈕的時候,APP不會再返回到主界面,而是會直接退出。

(2)顯然這不能解決activity多次回跳的問題。
那么利用finish()的原理——“它將返回到當前Activity的發(fā)起者”,我們應當將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.點擊兩次返回按鈕才退出app
2.點擊返回按鈕回到桌面但是不退出app,使app在后臺運行

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

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

private static final int TIME_EXIT=2000;
 private long mBackPressed;

 @Override
 public void onBackPressed(){     //onBackPressed() 捕獲后退鍵按鈕back的信息
 if(mBackPressed+TIME_EXIT>System.currentTimeMillis()){ //currentTimeMillis,返回毫秒級別的系統(tǒng)時間
  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()方法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 分析Android Choreographer源碼

    分析Android Choreographer源碼

    Choreographer的作用主要是配合Vsync,給上層App的渲染提供一個穩(wěn)定的Message處理的時機,也就是Vsync到來的時候,系統(tǒng)通過對Vsync信號周期的調整,來控制每一幀繪制操作的時機
    2021-06-06
  • Kotlin?this關鍵字的使用實例詳解

    Kotlin?this關鍵字的使用實例詳解

    這篇文章主要介紹了Kotlin?this關鍵字的使用實例,在Kotlin中,this關鍵字允許我們引用一個類的實例,該類的函數恰好正在運行。此外,還有其他方式可以使this表達式派上用場
    2023-02-02
  • Android 快速實現防止網絡重復請求&按鈕重復點擊的方法

    Android 快速實現防止網絡重復請求&按鈕重復點擊的方法

    下面小編就為大家分享一篇Android 快速實現防止網絡重復請求&按鈕重復點擊的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • Android實現簡單購物車功能

    Android實現簡單購物車功能

    這篇文章主要為大家詳細介紹了Android實現二級列表購物車功能 ,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 講解Android中的Widget及AppWidget小工具的創(chuàng)建實例

    講解Android中的Widget及AppWidget小工具的創(chuàng)建實例

    這篇文章主要介紹了講解Android中的Widget及Widget的創(chuàng)建實例,文中的例子展示了通過RemoteView來溝通AppWidgetProvider與AppWidgetHostView的方法,需要的朋友可以參考下
    2016-03-03
  • Android從相冊選擇圖片剪切和上傳

    Android從相冊選擇圖片剪切和上傳

    這篇文章主要為大家詳細介紹了Android從相冊選擇一個圖片剪切、上傳的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • Android自定義帶水滴的進度條樣式(帶漸變色效果)

    Android自定義帶水滴的進度條樣式(帶漸變色效果)

    這篇文章主要介紹了Android自定義帶水滴的進度條樣式(帶漸變色效果)的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-12-12
  • Android端TCP長連接的性能優(yōu)化教程分享

    Android端TCP長連接的性能優(yōu)化教程分享

    在開發(fā)過程中,我們經常會用到TCP/IP連接實現即時數據傳輸,下面這篇文章主要給大家介紹了關于Android端TCP長連接的性能優(yōu)化的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2018-03-03
  • Android 監(jiān)聽屏幕是否鎖屏的實例代碼

    Android 監(jiān)聽屏幕是否鎖屏的實例代碼

    今天小編通過本文給大家分享android如何監(jiān)聽手機屏幕是否鎖屏。實現方法很簡單,需要的朋友參考下吧
    2017-09-09
  • Android創(chuàng)建與解析XML(二)——詳解Dom方式

    Android創(chuàng)建與解析XML(二)——詳解Dom方式

    本篇文章主要介紹了Android創(chuàng)建與解析XML(二)——詳解Dom方式 ,這里整理了詳細的代碼,有需要的小伙伴可以參考下。
    2016-11-11

最新評論