Amdroid双击返回键实现退出应用程序

本文章详细介绍了BaseActivity类的实现细节,包括onCreate、onStart、onResume等生命周期方法,以及onKeyDown方法的事件处理逻辑,特别关注了如何通过onKeyDown方法实现双击返回键退出应用的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该程序是从个人项目中复制出来的, 所以有些方法可以不要。主要看handler和onKeyDown方法

package com.harvin.esn.activity;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.FragmentActivity;
import android.view.KeyEvent;

import com.harvin.esn.tools.AppUtils;
import com.harvin.esn.tools.DialogUtils;
import com.harvin.esn.tools.LogUtils;

public class BaseActivity extends FragmentActivity {
    private final String TAG = "BaseActivity";// 打印日志的标题
    private boolean isExit = true;
    private static final int HANDLER_IS_EXIT = 1000;

    private Handler handler = new Handler() {
        public void handleMessage(Message msg) {
            switch (msg.what) {
            case HANDLER_IS_EXIT:
                isExit = true;
                break;

            }
        };
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        AppUtils.getInstance().addActivity(BaseActivity.this);//将actiivty统一管理
    }

    @Override
    protected void onStart() {
        super.onStart();
        LogUtils.i(TAG, "onStart");
    }

    @Override
    protected void onResume() {

        super.onResume();
        LogUtils.i(TAG, "onResume");
    }

    @Override
    protected void onPause() {
        super.onPause();
        LogUtils.i(TAG, "onPause");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        LogUtils.i(TAG, "onRestart");
    }

    @Override
    protected void onStop() {
        super.onStop();
        LogUtils.i(TAG, "onStop");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        LogUtils.i(TAG, "onDestroy");
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        /**
         * 实现双击返回键,退出应用程序
         * */
        if (keyCode == KeyEvent.KEYCODE_BACK) {//判断是否点击返回键
            if (isExit) {
                isExit = false;//更改判断
                DialogUtils.showShortToast(getApplicationContext(), "在按一次退出应用");//提示语
                Message msg = new Message();
                msg.what = HANDLER_IS_EXIT;
                handler.sendMessageDelayed(msg, 2000);//延时2秒发送消息
            } else {
                AppUtils.getInstance().finish();//销毁所有的Activity
                System.exit(0);//退出程序
            }
            return false;
        }

        return super.onKeyDown(keyCode, event);
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值