[Android1.5]打开多个Activity,返回到第一个Activity的问题


前言

   Android项目中一旦涉及到登录就基本会遇到这个问题:打开多个Activity之后再登录超时的情况下如何才能跳转到登录界面,参见帖子这里。暂时没有完美解决方案,本文是对该帖子的补充说明:

 

声明

  欢迎转载,但请保留文章原始出处:)

    博客园:http://www.cnblogs.com

    农民伯伯: http://www.cnblogs.com/over140

 

正文

  一、流程截图

    

  二、问题说明

    依次从登录到三级界面,然后退出回到登录界面。

 

  三、解决办法

    3.1  实现代码

      三级界面调用如下代码:

        Intent intent = new Intent(context, LoginView.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        context.startActivity(intent);

    3.2  代码说明

       如果intent对象包含FLAG_ACTIVITY_CLEAR_TOP 标记,当目标task中已存在与接收该intent对象的 activity类型相同的activity实例存在时,所有位于该activity对象上面的activity将被清空,这样接收该intent的 activity就位于栈顶,可以响应到来的intent对象。如果目标activity的运行模式为standard(默认),则目标activtiy也会被清空。因为当运行模式为standard时,总会创建新的activity对象来接收到来的intent对象。

 

  四、注意问题

    注意查看源代码,Activity在finish的时候会判断一下mParent是否为空。

 

  五、参考文章

    4.1  Android的Activity和Tasks详解

    4.2  打开多个Activity,返回到第一个Activity


结束

   本文关键在代码说明那部分,看来还是需要系统的对Activity等基础类进行详细的学习才能解决更复杂的问题。

 

posted @   农民伯伯  阅读(11603)  评论(7编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示