日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 芯聞號 > 充電吧
[導讀]在使用android平臺的app是我們經(jīng)常會發(fā)現(xiàn)點擊兩次返回鍵會提示是否退出的功能,下面講講此功能是如何實現(xiàn)的(此方法比較簡單)第一種方法是對系統(tǒng)返回鍵進行監(jiān)聽,定義一個變量記錄按鍵時間,通過計算時間

在使用android平臺的app是我們經(jīng)常會發(fā)現(xiàn)點擊兩次返回鍵會提示是否退出的功能,下面講講此功能是如何實現(xiàn)的(此方法比較簡單)

第一種方法是對系統(tǒng)返回鍵進行監(jiān)聽,定義一個變量記錄按鍵時間,通過計算時間差來實現(xiàn)該功能,代碼如下:

//退出時的時間
private?long?mExitTime;
//對返回鍵進行監(jiān)聽
@Override
public?boolean?onKeyDown(int?keyCode,?KeyEvent?event)?{

????if?(keyCode?==?KeyEvent.KEYCODE_BACK?&&?event.getRepeatCount()?==?0)?{

????????exit();
????????return?true;
????}
????return?super.onKeyDown(keyCode,?event);
}

public?void?exit()?{
????if?((System.currentTimeMillis()?-?mExitTime)?>?2000)?{
????????Toast.makeText(MainActivity.this,?"再按一次退出每日新聞",?Toast.LENGTH_SHORT).show();
????????mExitTime?=?System.currentTimeMillis();
????}?else?{
????????MyConfig.clearSharePre(this,?"users");
????????finish();
????????System.exit(0);
????}
}

第二種實現(xiàn)的基本原理就是,當按下BACK鍵時,會被onKeyDown捕獲,判斷是BACK鍵,則執(zhí)行exit方法。
在exit方法中,會首先判斷isExit的值,如果為false的話,則置為true,同時會彈出提示,并在2000毫秒(2秒)后發(fā)出一個消息,在Handler中將此值還原成false。如果在發(fā)送消息間隔的2秒內(nèi),再次按了BACK鍵,則再次執(zhí)行exit方法,此時isExit的值已為true,則會執(zhí)行退出的方法。
import?android.app.Activity;
import?android.os.Bundle;
import?android.os.Handler;
import?android.os.Message;
import?android.view.KeyEvent;
import?android.widget.Toast;

public?class?MainActivity?extends?Activity?{

????//?定義一個變量,來標識是否退出
????private?static?boolean?isExit?=?false;

????Handler?mHandler?=?new?Handler()?{

????????@Override
????????public?void?handleMessage(Message?msg)?{
????????????super.handleMessage(msg);
????????????isExit?=?false;
????????}
????};

????@Override
????protected?void?onCreate(Bundle?savedInstanceState)?{
????????super.onCreate(savedInstanceState);
????????setContentView(R.layout.activity_main);
????}

????@Override
????public?boolean?onKeyDown(int?keyCode,?KeyEvent?event)?{
????????if?(keyCode?==?KeyEvent.KEYCODE_BACK)?{
????????????exit();
????????????return?false;
????????}
????????return?super.onKeyDown(keyCode,?event);
????}

????private?void?exit()?{
????????if?(!isExit)?{
????????????isExit?=?true;
????????????Toast.makeText(getApplicationContext(),?"再按一次退出程序",
????????????????????Toast.LENGTH_SHORT).show();
????????????//?利用handler延遲發(fā)送更改狀態(tài)信息
????????????mHandler.sendEmptyMessageDelayed(0,?2000);
????????}?else?{
????????????finish();
????????????System.exit(0);
????????}
????}
}
本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉