关于返回首页功能的两种实现

最近需要实现一个返回首页的功能,刚开始自己的基本思路就是清除当前站内的所有activity但不包括MainActivity,这种方法也不难,CSDN上一搜就找到了答案。

方案一

Intent intent = new Intent(this, MainActivity.class);

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(intent);

这种做法就是把当前栈内的所有activity全部清除,然后再新建一个MainActivity,这种是最暴力的一种实现方式,不管MainActivity首页是否存在都直接重新创建,很影响体验,并且会消耗流量。

方案二

为了节能减排,减少多余的消耗,下面我们说说第二种实现方案。

一般首页MainActivity我们会将其启动模式launcherMode设置为singleTask模式,这种模式下,只要任务栈内存在该activity就不会重新创建,直接复用。

android:launchMode="singleTask"

android:screenOrientation="portrait">

intent-filter>

activity>

//使用的时候直接启动activity就可以啦

//在MainActivity之上的activity会自动被清除

//符合栈的后进先出原则

Intent intent = new Intent(this, MainActivity.class);

startActivity(intent);

这种方法要求比较高,不能定位到特定的activity,只能是首页MainActivity,这样才能保证逻辑上不会出错,如果需要在其他activity上使用逻辑上需要考虑是否符合当时的使用情景,当启动MainActivity之后栈内其上的activity将会被从栈中清除。

总结

其实方案二不是我等菜鸟能够想出来的,对android了解的甚少,对activity的任务站了解的也不够透彻,还有各种启动模式的标志位都不是很了解,多亏了博客大神任玉刚的书《android开发艺术探索》才能理解到这一层,多谢大神指点。最后希望这篇文章能够帮到希望学习的你。

android返回到首页,android中实现返回首页功能相关推荐

  1. android读取工程目录下的文件,Android编程实现读取工程中的txt文件功能

    本文实例讲述了Android编程实现读取工程中的txt文件功能.分享给大家供大家参考,具体如下: 1. 众所周知,Android的res文件夹是用来存储资源的,可以在res文件夹下建立一个raw文件夹 ...

  2. 获取存储过程返回值及代码中获取返回值

    获取存储过程返回值及代码中获取返回值 1.OUPUT参数返回值例: 向Order表插入一条记录,返回其标识 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_b ...

  3. 获取存储过程返回值及代码中获取返回值(转)

    获取存储过程返回值及代码中获取返回值 1.OUPUT参数返回值例: 向Order表插入一条记录,返回其标识 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_b ...

  4. android onkeydown继承,onKeyDown方法中的返回值

    今天调了一个非常蛋疼的bug,花了差不多一个小时的时间,在应用内的某个activity中不能使用设备的音量调节按钮调节音量,开始以为是因为window的某些flag导致的,试了试,貌似没有影响,后来又 ...

  5. android targetapi版本低,Android应用开发之Android @TargetAPI版本兼容性解析

    本文将带你了解Android应用开发Android @TargetAPI版本兼容性解析,希望本文对大家学Android有所帮助. Android   @TargetAPI版本兼容性解析,Android ...

  6. android生成apk流程,Android Studio生成APK的基本流程

    Android Studio生成APK的基本流程 2020年08月14日 | 萬仟网移动技术 | 我要评论 Android Studio生成APK流程修改版本号和文件名安全加固(可选)生成签名apk修 ...

  7. 服务器请求状态码返回400,HTTP详解(四)——返回结果的HTTP状态码

    HTTP状态码负责表示客户端HTTP请求的返回结果.标记服务器端的处理是否正常.通知出现的错误等工作. 状态码告知从服务器端返回的请求结果 状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结 ...

  8. activity中fragment 返回键不退出_分享一波阿里Android客户端面经,我竟连这都答不上来?...

    今天整理了电脑,发现了几个月前总结了一半的阿里面经,想起来了去年秋招不愉快的阿里一面,今天分享给大家.希望大家前事不忘后事之师,吸取经验教训. 一面(挂) 1.点击图标,应用打开,点击home键,重新 ...

  9. 【Android】Android中屏蔽返回键,home键以及其他实体按键

    屏蔽键重写activiy的两个方法就行 屏蔽返回键 public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { ...

  10. android 返回图标,在Toolbar中添加一个返回图标

    如果我们在布局中这样添加一个Toolbar,那么添加后Toolbar中啥都没有,只有一个背景颜色 android:id="@+id/toolbar" android:layout_ ...

最新文章

  1. 标准化是RFID发展的必由之路
  2. 3.6.3 无线局域网
  3. ASP.NET中App_Code,App_Data等文件夹的作用转
  4. 伽卡他卡电子教室 百度百科_怎么创建人物百度百科?人物百度百科创作技巧...
  5. ThreadLocal的原理和FastThreadLocal的优势
  6. 【机器学习】传统目标检测算法之DPM
  7. 携程梁建章:要让元宇宙技术成为真宇宙探索、旅游的灵感来源
  8. sklearn学习5-----模型评估(1) 分类度量
  9. Java面向对象的思想
  10. 计算机拼音字体大小设置,怎样调整字体大小
  11. caffe 安装方法(python)
  12. wps怎么导入access_WPS Access 2013_access 2013下载-下载之家
  13. 易语言解压服务器中压缩包,易语言取压缩包中的文件列表源码
  14. Secure CRT 配色方案
  15. Ajax上传视频文件
  16. 如何用VB语言实现四连环游戏(重力四子棋)?
  17. MQTT客户端软件(MQTT.fx)的使用详解
  18. 中职网络安全操作系统渗透
  19. 最优布线问题 题解
  20. escape在sql语句中的作用

热门文章

  1. 浅谈导航数据中POI搜索技术原理
  2. html网页表格中加超链接,用html给div加类似a标签的超链接(转)
  3. 6个炒菜习惯 丢失营养
  4. 记录下我磕磕碰碰的三个月找工作经历,offer拿到手软
  5. Android 实现涂鸦笔效果
  6. PCI GXL学习之安装篇
  7. 学习工行MySQL研发管控和治理实践的过程
  8. 第二章:计算思维——知识点整理
  9. Hive On Spark
  10. 「GitLab篇」如何用Git平台账号登录建木CI