最近在
debug
的时候遇到一个很有意思的问题,
Activity
中有一个
button
,这个
button
里面写了一些判断处理数据的逻辑,需要耗费一点时间。当用户在
1
秒内连续点击
2
次
button
,会启动
2
个
Activity
。
很有意思的问题,我一直以为
Activity
当前只能启动一个。在没有请教公司高手之前,我的处理方式是:用一个状态变量控制
button
能不能被点击。
但是被否决掉了,因为这样的
unclickable
对用户来说是不可理解的。
Button button = (Button)findViewById(R.id.btn);
button.setClickable(false);
后来公司的一个高手解决了这个问题,其实很简单,只是我缺乏了这方面的知识。
有两种方法可以解决这个问题:
1. 在
AndroidManifest.xml
中设置
Target Activity
的属性,设置它的
launchMode
关于
launchMode
的参数一共有
4
个:
android:launchMode=["multiple"| "singleTop" | "singleTask" | "singleInstance"]
具体可以查一些
reference
,这里我要说的是
singleTop
和
singleTask
,你用这些参数之前一点要明白
task
是什么意思。在这里我只希望有一个
activity
在堆栈里,不要反复创建,调用它时直接从堆栈里面取出置顶,所以我用
singleTop
2. 在代码里对
Intent
进行设置:
这我想说的是
setFlags
和
addFlags
之间的区别,如果
setFlags
是可以改变原来
flag
设置,
addFlags
如果原先有类似设置就不能被加入了
Intent intent = new Intent();
intent.setClass(getApplicationContext(), TargetActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
放了一个做成的Project在上面
http://yfdisk.com/file/leewind841209/d3b7f0a8/
可以下载下来看看,欢迎留言指点
分享到:
相关推荐
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...
7、使用到物理按钮事件,连续两次点击主界面的返回按钮才能退出系统,否 则给予提示 8、使用到网络编程,用http协议调用JSON格式的接口 9、实现Handle机制实现系统的某一个功能 10、使用系统的提示框,删除提示 ...
在注册Activity是加入 <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> 可指定当前的Activity为主Activity...
//图片自动进行切换,每隔两秒进行一次切换 scheduledExecutorService.scheduleAtFixedRate(new ScrollTask(), 1,2, TimeUnit.SECONDS); super.onStart(); } @Override protected void onStop() { //当...
</android.support.v4.view.ViewPager> <TextView android:layout_width="match_parent" android:layout_height="0.5dp" android:background="#737373" /> <TextView android:layout_width="match_parent...
Activity 中两次调用OnCreate的原因 ByteBuffer 和 FloatBuffer 的直接分配和非直接分配 Application的使用小总结 “call to OpenGL ES API with no current context (logged once per thread” 问题的解决 2013年9...
首先此项目是本人学校安卓开发的一次作业,用Android Studio开发一个简单的计算器,这个计算器正常的功能为带括号的加减乘除多项式计算! 界面展示 废话不多说先展示一下界面!(模仿了小米计算器),有两种方式添加...
第一个Activity:两个单选框(RadioButton)获取性别,一个输入框(EditText)获取身高,一个可选输入框(EditText)获取实际体重,一个按钮(Button)及一些提示文本。 Android实训报告(1)全文共12页,当前为第4页...
2.1.8、一次性关闭所有的Activity 22 2.1.9、PreferenceActivity 用法 22 2.1.10、Dialog风格的Activity 23 2.1.11、横竖屏切换不销毁当前Activity 23 2.2、INTENT RECEIVER 25 2.3、SERVICE 26 2.3.1、什么是...
android计步器的实现,自定义的一个弧形进度条,记步通过手机的传感器来实现,也就是说不支持传感器的机子(应该很老的了吧)就没有效果。看看效果图: 这里写图片描述这里写图片描述 自定义View public class ...
2.1.8、一次性关闭所有的Activity 22 2.1.9、PreferenceActivity 用法 22 2.1.10、Dialog风格的Activity 23 2.1.11、横竖屏切换不销毁当前Activity 23 2.2、INTENT RECEIVER 25 2.3、SERVICE 26 2.3.1、什么是...
通过程序功能分析,可将程序划分为2个模块,即2个Activity: 第一个Activity:两个单选框(RadioButton)获取性别,一个输入框(EditText) 获取身高,一个可选输入框(EditText)获取实际体重,一个按钮(Button)...
通过程序功能分析,可将程序划分为2个模块,即2个Activity: 第一个Activity:两个单选框(RadioButton)获取性别,一个输入框(EditText) 获取身高,一个可选输入框(EditText)获取实际体重,一个按钮(Button)...
目前工作负责两个医疗APP项目的开发,同时使用LeanCloud进行云端配合开发,完全单挑。 现大框架已经完成,正在进行细节模块上的开发 抽空总结一下Android项目的开发规范:1、编码规范 2、命名规范 注:...