前言
开始始学习android,对android的启动模式没有什么了解,就使用了时间判断是否重复点击了两次按钮,启动另外的activity界面,这样的控制方法,有时候会失效,比如,两秒钟还未启动另外的activity,那么又可以重复点击。所以,就调整为android的启动模式来控制重复出现多个acitvity。

一、通过时间控制点击次数:
这种方式对应控制网络请求不错。

public class NoDoubleClickUtil {    private static long lastClickTime;    private final static int SPACE_TIME =2000;    public static void initLastClickTime() {        lastClickTime = 0;    }    public synchronized static boolean isDoubleClick() {        long currentTime = System.currentTimeMillis();        boolean isClickDouble;        if (currentTime - lastClickTime >                SPACE_TIME) {            isClickDouble = false;        } else {            isClickDouble = true;        }        lastClickTime = currentTime;        return isClickDouble;    }}

二、通过launchMode启动模式控制出现多个activity的方式:
这种方式真正意义上杜绝了同时出现相同的多个activity。

    <activity android:name=".InternetHospital.InternetHospitalInquiryCallUI"            android:launchMode="singleInstance"/>

或者在代码中设置:

Intent intent = new Intent();intent.setClass(getApplicationContext(), TargetActivity.class);intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);startActivity(intent);

三、android的四种启动模式:
1、standard模式:每次调用startActivity()启动时都会创建一个新的Activity放在栈顶(默认都是这个模式
2、singleTop模式:启动Activity时,指定Activity不在栈顶就创建,如在栈顶,则不再创建(不会出现两个相同的Activity相邻
3、singleTask模式:如果启动的Activity不存在就创建Activity,如果存在直接跳转到指定的Activity所在位置(在其上面的Activity会被移出栈,也就是一个栈中不能有重复的Activity
4、singleInstance模式:如果启动的Activity不存在就创建一个Activity同时创建一个栈,如果存在就将指定的Activity存在的栈移动到栈顶(表示这个Activity只能存在于一个独立的任务栈中,同应用的其它Activity与其无关

更多相关文章

  1. Android之Service学习篇二:Service启动方式之boundService
  2. Android USB下的Accessory模式
  3. Android拍照实现方式概述
  4. Android 设置合理的定时器隔一段时间执行某段程序
  5. android板子几种调试方式
  6. Android与设计模式浅谈
  7. android usb主从设备模式解析,网络连接调试方法

随机推荐

  1. Android(安卓)8.1静态广播的使用以及添加
  2. 在Window下使用NDK编译LuaJIT-2.0.1版
  3. Android打包签名——生成keystore到完成
  4. android 按键声音
  5. Linux 中搭建Android开发环境中碰到问题
  6. android 如何定义全局变量
  7. 【Android】ViewPager+Fragment的基本使
  8. Android通过xml文件配置数据库
  9. Android(安卓)studio更新自身或者SDK以后
  10. Android(安卓)最强工具类的使用 .blankj: