电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

關于android連續點擊出現多個Activity界面的解決方法

瀏覽:120日期:2022-09-25 11:34:47

前言

開始始學習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與其無關)

補充知識:Android中退出多個Activity的兩個經典方法

一種把每個activity用集合記住,然后逐一干掉;另一種思路是使用廣播。

方法一、用list保存activity實例,然后逐一干掉

創建一個外部類繼承Application用來存放activity

public class MyActvity extends Application { //創建一個集合,用來存放activity的對象 ArrayList<Activity>list=new ArrayList<>(); //聲明一個本類的對象 private static MyActvity instance; public MyActvity() { } //創建一個方法,用來初始化MyActivity的對象,并且初始化的對像的返回 public synchronized static MyActvity getInstance(){ if (instance==null){ instance=new MyActvity(); } return instance; } //調用此方法用來向集合當中添加activity對象 public void addActivity(Activity activity){ list.add(activity); } //判斷activity是否已經在集合當中 public boolean isexitlist(Activity activity){ if (list.contains(activity)){ return true; } return false; } //當調用此方法的時候,關閉所有的activity public void exit(){ for (Activity activity:list){ activity.finish(); } //退出當前的MyActivity System.exit(0); } @Override public void onLowMemory() { super.onLowMemory(); //當系統的存儲空間不夠的時候,調用系統的垃圾回收期,清理里面的垃圾 System.gc(); }}

Activity1代碼:

public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //調用存放activity類 MyActvity instance = MyActvity.getInstance(); //判斷存放activity類是否存放該activity,不存在加入類 if (!instance.isexitlist(this)){ instance.addActivity(this); } Intent intent = new Intent(this, Main2Activity.class); startActivity(intent); }}

Activity2代碼:

public class Main2Activity extends Activity { private MyActvity instance; /** * Called when the activity is first created. */ @Override+ super.onCreate(savedInstanceState); setContentView(R.layout.sdfa); Button bt= (Button) findViewById(R.id.bt); instance = MyActvity.getInstance(); if (!instance.isexitlist(this)){ instance.addActivity(this); } bt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //調用exit()方法銷毀里面所有activityinstance.exit(); } }); }}

方法二、使用廣播在activity里注冊廣播,銷毀時啟動廣播

MainActivity里注冊廣播:

public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Intent intent = new Intent(this, Main2Activity.class); startActivity(intent); //注冊廣播 IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(Define.PAHNAME); registerReceiver(new MyReceiver(),intentFilter); } class MyReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { unregisterReceiver(this); ((Activity)context).finish(); } }}

activity2:啟動廣播

public class Main2Activity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sdfa); Button bt= (Button) findViewById(R.id.bt); bt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {Intent intent = new Intent(Define.PAHNAME);sendBroadcast(intent);finish(); } }); }}

以上這篇關于android連續點擊出現多個Activity界面的解決方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Android
相關文章:
主站蜘蛛池模板: 沈阳楼承板_彩钢板_压型钢板厂家-辽宁中盛绿建钢品股份有限公司 轴承振动测量仪电箱-轴承测振动仪器-测试仪厂家-杭州居易电气 | 国产液相色谱仪-超高效液相色谱仪厂家-上海伍丰科学仪器有限公司 | 医院专用门厂家报价-医用病房门尺寸大全-抗菌木门品牌推荐 | 旗杆生产厂家_不锈钢锥形旗杆价格_铝合金电动旗杆-上海锥升金属科技有限公司 | 登车桥动力单元-非标液压泵站-非标液压系统-深圳市三好科技有限公司 | 雨水收集系统厂家-雨水收集利用-模块雨水收集池-徐州博智环保科技有限公司 | 东莞市海宝机械有限公司-不锈钢分选机-硅胶橡胶-生活垃圾-涡电流-静电-金属-矿石分选机 | 工业车间焊接-整体|集中除尘设备-激光|等离子切割机配套除尘-粉尘烟尘净化治理厂家-山东美蓝环保科技有限公司 | 重庆磨床过滤机,重庆纸带过滤机,机床伸缩钣金,重庆机床钣金护罩-重庆达鸿兴精密机械制造有限公司 | 鑫铭东办公家具一站式定制采购-深圳办公家具厂家直销 | NMRV减速机|铝合金减速机|蜗轮蜗杆减速机|NMRV减速机厂家-东莞市台机减速机有限公司 | 打孔器,打孔钳厂家【温州新星德牌五金工具】| 预制舱-电力集装箱预制舱-模块化预制舱生产厂家-腾达电器设备 | 体感VRAR全息沉浸式3D投影多媒体展厅展会游戏互动-万展互动 | 工业胀紧套_万向节联轴器_链条-规格齐全-型号选购-非标订做-厂家批发价格-上海乙谛精密机械有限公司 | 臻知网大型互动问答社区-你的问题将在这里得到解答!-无锡据风网络科技有限公司 | 天一线缆邯郸有限公司_煤矿用电缆厂家_矿用光缆厂家_矿用控制电缆_矿用通信电缆-天一线缆邯郸有限公司 | 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 气力输送_输送机械_自动化配料系统_负压吸送_制造主力军江苏高达智能装备有限公司! | 集装箱标准养护室-集装箱移动式养护室-广州璟业试验仪器有限公司 | 平面钻,法兰钻,三维钻-山东兴田阳光智能装备股份有限公司 | 户外环保不锈钢垃圾桶_标识标牌制作_园林公园椅厂家_花箱定制-北京汇众环艺 | 石磨面粉机|石磨面粉机械|石磨面粉机组|石磨面粉成套设备-河南成立粮油机械有限公司 | 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | 玉米加工设备,玉米深加工机械,玉米糁加工设备.玉米脱皮制糁机 华豫万通粮机 | YT保温材料_YT无机保温砂浆_外墙保温材料_南阳银通节能建材高新技术开发有限公司 | 培训一点通 - 合肥驾校 - 合肥新亚驾校 - 合肥八一驾校 | 美国PARKER齿轮泵,美国PARKER柱塞泵,美国PARKER叶片泵,美国PARKER电磁阀,美国PARKER比例阀-上海维特锐实业发展有限公司二部 | 航空连接器,航空插头,航空插座,航空接插件,航插_深圳鸿万科 | 螺旋压榨机-刮泥机-潜水搅拌机-电动泥斗-潜水推流器-南京格林兰环保设备有限公司 | 制氮设备_PSA制氮机_激光切割制氮机_氮气机生产厂家-苏州西斯气体设备有限公司 | OLChemim试剂-ABsciex耗材-广州市自力色谱科仪有限公司 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | 家用净水器代理批发加盟_净水机招商代理_全屋净水器定制品牌_【劳伦斯官网】 | 阴离子_阳离子聚丙烯酰胺厂家_聚合氯化铝价格_水处理絮凝剂_巩义市江源净水材料有限公司 | 环讯传媒,永康网络公司,永康网站建设,永康小程序开发制作,永康网站制作,武义网页设计,金华地区网站SEO优化推广 - 永康市环讯电子商务有限公司 | 减速机三参数组合探头|TSM803|壁挂式氧化锆分析仪探头-安徽鹏宸电气有限公司 | 体检车_移动CT车_CT检查车_CT车_深圳市艾克瑞电气有限公司移动CT体检车厂家-深圳市艾克瑞电气有限公司 | 高压分散机(高压细胞破碎仪)百科-北京天恩瀚拓| 烟台螺纹,烟台H型钢,烟台钢材,烟台角钢-烟台市正丰金属材料有限公司 |