关于安卓应用后台重新安装后,重新进入,应用重新打开问题

简介: 安卓应用后台重新安装后,重新进入,应用重新打开问题

现象:安卓应用,通过安卓自带的程序安装器安装完成以后,点击“打开按钮”,打开程序后,点击手机home键返回桌面,再次点击桌面应用图标打开应用,观察现象--应用重启,应用入口activity重新启动。

分析:通过程序安装器打开应用的方式与桌面图标打开应用的方式是有区别的。具体差别为,通过程序安装器打开应用,安卓启动应用的时候,会有一个setPackage的行为,因为这个setPackage的行为,会导致最后应用入口activity打开的时候,会传值一个FLAG_ACTIVITY_BROUGHT_TO_FRONT过来,导致应用的程序栈发生改变,从而导致后续现象的发生。


FLAG_ACTIVITY_BROUGHT_TO_FRONT官方描述如下:

If, when starting the activity, there is already a task running that starts with this activity, then instead of starting a new instance the current task is brought to the front. The existing instance will receive a call to Activity.onNewIntent() with the new Intent that is being started, and with the Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT flag set. This is a superset of the singleTop mode, where if there is already an instance of the activity being started at the top of the stack, it will receive the Intent as described there (without the FLAG_ACTIVITY_BROUGHT_TO_FRONT flag set). See the Tasks and Back Stack document for more details about tasks.

注意黑色字体。这就是造成该现象发生的关键点。

解决方法如下图:


网络异常,图片无法展示
|

增加flag判断


that's all-------------------------------------------------------------------------------------------------------------------------------

目录
相关文章
|
6天前
|
IDE Java 开发工具
深入探索安卓应用开发:从环境搭建到第一个"Hello, World!"应用
本文将引导读者完成安卓应用开发的初步入门,包括安装必要的开发工具、配置开发环境、创建第一个简单的安卓项目,以及解释其背后的一些基本概念。通过一步步的指导和解释,本文旨在为安卓开发新手提供一个清晰、易懂的起点,帮助读者顺利地迈出安卓开发的第一步。
179 64
|
6天前
|
存储 Java Android开发
探索安卓应用开发:构建你的第一个"Hello World"应用
【9月更文挑战第24天】在本文中,我们将踏上一段激动人心的旅程,深入安卓应用开发的奥秘。通过一个简单而经典的“Hello World”项目,我们将解锁安卓应用开发的基础概念和步骤。无论你是编程新手还是希望扩展技能的老手,这篇文章都将为你提供一次实操体验。从搭建开发环境到运行你的应用,每一步都清晰易懂,确保你能顺利地迈出安卓开发的第一步。让我们开始吧,探索如何将一行简单的代码转变为一个功能齐全的安卓应用!
|
10天前
|
开发框架 搜索推荐 开发工具
打造个性化安卓应用:从零开始的Flutter之旅
【8月更文挑战第51天】本文是一篇面向初学者的Flutter入门教程,旨在通过简单易懂的语言和实际代码示例,引导读者步入跨平台移动应用开发的世界。文章首先介绍了Flutter的基本概念和优势,然后逐步展示了如何搭建开发环境、创建第一个Flutter应用,并实现了一个简单的待办事项列表。最后,文章探讨了Flutter在实现高性能和美观界面方面的潜力,鼓励读者发挥创意,探索更多可能。
58 15
|
11天前
|
Java Android开发 UED
🧠Android多线程与异步编程实战!告别卡顿,让应用响应如丝般顺滑!🧵
在Android开发中,为应对复杂应用场景和繁重计算任务,多线程与异步编程成为保证UI流畅性的关键。本文将介绍Android中的多线程基础,包括Thread、Handler、Looper、AsyncTask及ExecutorService等,并通过示例代码展示其实用性。AsyncTask适用于简单后台操作,而ExecutorService则能更好地管理复杂并发任务。合理运用这些技术,可显著提升应用性能和用户体验,避免内存泄漏和线程安全问题,确保UI更新顺畅。
31 5
|
12天前
|
前端开发 Java 数据库
💡Android开发者必看!掌握这5大框架,轻松打造爆款应用不是梦!🏆
在Android开发领域,框架犹如指路明灯,助力开发者加速应用开发并提升品质。本文将介绍五大必备框架:Retrofit简化网络请求,Room优化数据库访问,MVVM架构提高代码可维护性,Dagger 2管理依赖注入,Jetpack Compose革新UI开发。掌握这些框架,助你在竞争激烈的市场中脱颖而出,打造爆款应用。
71 3
|
12天前
|
存储 API Android开发
"解锁Android权限迷宫:一场惊心动魄的动态权限请求之旅,让你的应用从平凡跃升至用户心尖的宠儿!"
随着Android系统的更新,权限管理成为应用开发的关键。尤其在Android 6.0(API 级别 23)后,动态权限请求机制的引入提升了用户隐私保护,要求开发者进行更精细的权限管理。
37 2
|
13天前
|
搜索推荐 Java 测试技术
打造个性化安卓应用:从设计到发布的完全指南
【9月更文挑战第17天】在这个数字时代,拥有一款个性化的安卓应用无疑是展现创意、实现梦想的一大步。本文将带你走进安卓应用的开发世界,从设计理念的孕育到实际代码的编写,再到最终的应用发布,我们将一步步揭开应用开发的神秘面纱。无论你是编程新手还是希望提升现有技能,这篇文章都将是你的宝贵资源。让我们开始这段激动人心的旅程吧!
下一篇
无影云桌面