zoukankan      html  css  js  c++  java
  • Android 中点击返回键弹出“在按一次退出程序”的做法

            在很多应用中都有这种做法,连续点击两次才退出程序,目的是为了防止用户不小心点击到了返回键而退出程序了,添加了一次用户确认的过程。

            其实做法很简单,只需要做一个延时的消息处理就可以了。

       首先在我们在一个Activity中添加一个按钮,连续两次点击按钮时退出,连续两次点击返回键时也退出程序。

         

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical"
     6     android:gravity="bottom|right" >
     7     
     8 
     9     <Button 
    10         android:id="@+id/exit"
    11         android:layout_width="wrap_content"
    12         android:layout_height="wrap_content"
    13         android:text="退出应用">
    14         
    15     </Button>
    16 </LinearLayout>

        在代码中点击按钮时将标志位置为true,如果在两秒内点击,因为标致位为true,所以会退出应用,同时做一个延时2秒的消息处理,两秒后将标志位还原,就意味着两秒后点击和刚开始点击是一样的效果。

        

     1 package com.alex.test;
     2 
     3 import java.util.Timer;
     4 import java.util.TimerTask;
     5 
     6 import android.app.Activity;
     7 import android.os.Bundle;
     8 import android.view.KeyEvent;
     9 import android.view.View;
    10 import android.view.View.OnClickListener;
    11 import android.widget.Button;
    12 import android.widget.Toast;
    13 
    14 public class ExitTest extends Activity implements OnClickListener {
    15 
    16     private Button mExitBtn;
    17     private static boolean isExit = false;
    18     
    19     @Override
    20     protected void onCreate(Bundle savedInstanceState) {
    21         super.onCreate(savedInstanceState);
    22         setContentView(R.layout.exit);
    23         initView();
    24     }
    25     
    26     private void initView() {
    27         mExitBtn = (Button) findViewById(R.id.exit);
    28         mExitBtn.setOnClickListener(this);
    29     }
    30 
    31     @Override
    32     public void onClick(View v) {
    33         switch (v.getId()) {
    34         case R.id.exit:
    35             exit();
    36             break;
    37 
    38         default:
    39             break;
    40         }
    41     }
    42     
    43     private void exit() {
    44         if(!isExit) {
    45             isExit = true;
    46             Toast.makeText(this, "在按一次退出程序", Toast.LENGTH_SHORT).show();
    47             new Timer().schedule(new TimerTask() {
    48                 
    49                 @Override
    50                 public void run() {
    51                     isExit = false;
    52                 }
    53             }, 2000);
    54         } else {
    55             finish();
    56         }
    57     }
    58     
    59     @Override
    60     public boolean onKeyDown(int keyCode, KeyEvent event) {
    61         if(keyCode == KeyEvent.KEYCODE_BACK) {
    62             exit();
    63         }
    64         return false;
    65     }
    66 }

        点击返回键和点击按钮都会看到在按一次退出程序的toast,在两秒内在点一次程序会退出。

  • 相关阅读:
    Angular1.0
    当今流行的 React.js 适用于怎样的 Web App?
    bower的权限问题
    淡定啊淡定
    JBoss for luna
    JQuery的二维码插件
    今天学人家玩云主机
    laravel5.2/laravel5.3入门指南 Windows 上快速安装并运行 Laravel 5.x
    验证mySqli扩展是否
    Amazon EC2 的名词解释
  • 原文地址:https://www.cnblogs.com/shang53880/p/3578752.html
Copyright © 2011-2022 走看看