您的位置:首页 > 移动开发 > Android开发

Android连续点击两次按钮启动两次Activity

2015-12-31 16:27 531 查看
这个BUG 广泛存在很多APP中
分享个人在解决此类BUG一些想法。
一 ,通过activity的启动时间来处理此问题
1. 在 AndroidManifest.xml 中设置 Target Activity 的属性,设置它的 launchMode
关于 launchMode 的参数一共有 4 个:
Android代码
android:launchMode=["standard"| "singleTop" | "singleTask" | "singleInstance"]
四种模式 大家可以百度
简单介绍就是 standard 标准模式 每次启动新的activity 也是默认模式。
singleTop 只有一个实例在堆栈顶部,意思就是有则复用,这个方法会调用activity的 onnewIntent(Intent intent);
singlTask 在堆栈中只有一个实例,有则出栈 销毁上面的activity。让自己处于顶部。
singInstance
启用一个新的栈结构,将Acitvity放置于这个新的栈结构中,并保证不再有其他Activity实例进入.
2. 在代码里对 Intent 进行设置: 这我想说的是 setFlags 和 addFlags 之间的区别,
如果 setFlags 是可以改变原来 flag 设置, addFlags 如果原先有类似设置就不能被加入了
Android代码:
Intent intent = new Intent();
intent.setClass(getApplicationContext(), TargetActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);startActivity(intent);\
也可以在Mainfest中配置 代码中优先级大于Mainfest中的属性。
二 ,通过限制点击事件的间隔时间来解决,判断两次点击的时间间隔 小于500ms则忽略,实现起来也比较简单

public static boolean isFastDoubleClick() {
long time = System.currentTimeMillis();
long timeD = time - lastClickTime;
if (timeD >= 0 && timeD <= 500) {
return true;
} else {
lastClickTime = time;
return false;
}
}

具体就不说了。推荐使用第一种方式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: