这个问题在2016年仍然存在。今天,一个质量检查测试人员报告了一个我的应用重新启动,而不是从 Android M中的库存启动器中恢复。

实际上,系统将启动的活动添加到当前的任务堆栈中,但是对用户来说好像是重新启动发生了,他们已经失去了工作。顺序为:

从Play商店下载(或侧载APK)

从Play商店对话框启动应用程序:出现活动A [任务堆栈:A]

导航到活动B [任务堆栈:A-> B]

按“主页”按钮

从应用程序抽屉启动应用程序:活动A出现![任务堆栈:A-> B-> A](用户可以按“返回”按钮从此处进入活动“ B”)

注意:仅通过Play商店下载或侧载的APK中,通过ADB部署的调试APK不会显示此问题。在后一种情况下,步骤5中的启动意图包含标记Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT,但在调试情况下不包含。从启动器冷启动应用程序后,问题就消失了。我的怀疑是,该Task植入了格式错误(更准确地说,是非标准)的Intent,该Intent会阻止正确的启动行为,直到完全清除该任务为止。

我尝试了各种活动启动模式,但是这些设置与用户期望的标准行为相差太大:在活动B处恢复任务。请参见页面底部“ 任务和后退堆栈 ” 指南中的以下预期行为定义。在“开始任务”下:

这种意图过滤器会在应用程序启动器中显示活动的图标和标签,从而为用户提供一种启动活动并在活动启动后随时返回创建的任务的方法。

我发现这个答案很重要,并将以下内容插入了我的根活动(A)的'onCreate'方法中,以便在用户打开应用程序时可以适当地恢复。

/**

* Ensure the application resumes whatever task the user was performing the last time

* they opened the app from the launcher. It would be preferable to configure this

* behavior in  AndroidMananifest.xml activity settings, but those settings cause drastic

* undesirable changes to the way the app opens: singleTask closes ALL other activities

* in the task every time and alwaysRetainTaskState doesn't cover this case, incredibly.

*

* The problem happens when the user first installs and opens the app from

* the play store or sideloaded apk (not via ADB). On this first run, if the user opens

* activity B from activity A, presses 'home' and then navigates back to the app via the

* launcher, they'd expect to see activity B. Instead they're shown activity A.

*

* The best solution is to close this activity if it isn't the task root.

*

*/

if (!isTaskRoot()) {

finish();

return;

}

更新:此解决方案从分析意图标志转移到查询活动是否直接在任务的根源。意图标记很难以各种不同的方式来进行MAIN活动的打开(从家中启动,从“向上”按钮启动,从Play商店启动等)进行预测和测试。

android重启软件用不了,应用程序重启而不是重启相关推荐

  1. 重启计算机请等待当前程序完成卸载,Win7卸载软件提示“请等待当前程序完成卸载或更改”要怎么办呢?...

    Win7卸载软件提示"请等待当前程序完成卸载或更改"要怎么办呢? 发布时间:2019-03-29 小编:yue 浏览数: 大家在使用win7系统的过程中,时间久了,就会有一些不用的 ...

  2. 重启计算机请等待当前程序完成卸载,Win7卸载软件提示“请等待当前程序完成卸载或更改”三种解决方法...

    win7系统运行时间久了,会堆积很多不用的软件,一般会进入win7系统控制面板来卸载不需要软件,右键点击软件卸载时会出现"请等待当前程序完成卸载或更改"的提示(如下图所示),这该如 ...

  3. android 跑windows软件,一些Android平板即将可以运行Windows应用程序

    微软已经在Windows 10 Mobile中加入了Android虚拟机,这将是Windows 10 Mobile设备可以直接运行Android应用. 然而,并不只是微软会这么干.一些Android平 ...

  4. Android程序异常崩溃后重启

    有时候,我们需要应用在崩溃的时候自动重启,并打开崩溃前的那个Activity. 这时候,我们就需要用到Thread.UncaughtExceptionHandler这个接口. 首先,我们知道,既然是要 ...

  5. android程序启动动画,Android设置软件启动动画(以及初次安装的几张引导图)

    Android设置软件启动动画(以及初次安装的几张引导图) 设置软件启动动画 1 创建一个启动Activity 这里叫做QiDongActivity 它的XML中设置一个matchparent的背景图 ...

  6. Service与Android系统实现(1)-- 应用程序里的Service

    原址:http://blog.csdn.net/21cnbao/article/details/8086487 特别声明:本系列文章作者系吴赫.分多次连载,讲述Android Service(Java ...

  7. android 加速软件,手机技巧:千万不要用安卓手机加速App

    Android手机性能加速App,到底是仙丹妙药?还是请鬼抓药单?台湾知名App工具程序开发者Sam Lu,今天为大家做了实测如下: 最近看到HTC Boost+ app强调可以透过清除背景程序的方式 ...

  8. 制作一个自动重启软件

    一.软件功能 1.能够设置重启次数: 2.能够设置重启等待时间: 3.能够开机后自动运行: 4.能够随时取消重启计数. 二.技术要点 1.开机自动运行: 2.调用系统重启命令: 3.计数重启参数. 三 ...

  9. Android开发介绍(基于Android Studio软件)

    Android开发介绍(基于Android Studio软件) 关于Android开发,笔者走过一些弯路,因此今天总计了有关Android开发的一些内容和心得,希望对大家有所帮助.首先来一张安卓开发者 ...

最新文章

  1. python 自动化微信小程序_appium+python自动化56-微信小程序自动化(摩拜为例)
  2. 微信公共平台php用$GLOBALS[“HTTP_RAW_POST_DATA“]收不到信息解决方法
  3. WebCenter Space中配置使用WSRP Portlet
  4. 新手小白零基础搭建个人博客(二)Hexo搭建
  5. android学习笔记17——对话框(PopupWindow)
  6. mySql学习笔记:比sql server书写要简单
  7. Go语言:生成随机数
  8. 什么是无线射频识别技术(RFID)
  9. Windows Knowledge
  10. Codeforces 408 E. Curious Array
  11. 中国科学报:吴文俊的数字之舞
  12. c语言中while中的判断语句为感叹号x时是什么意思?
  13. Axon框架指南 - Baeldung
  14. En-Tan-Mo(ETM)项目周报(8.2-8.8)
  15. 数据库中,把角色的权限授权给用户总是报错,角色名附近有语法错误的原因
  16. Linux命令,一学就废?是的!
  17. 大龄青年自学Java,如何找到第一份工作?
  18. 慕课网跟练系列——侧边栏导航跟随案例
  19. java上机实验作业 编写汽车类car_请问如何用Java编写一个汽车类Car
  20. JavaRobot模拟键盘输入方法

热门文章

  1. R语言使用ggplot2包使用geom_dotplot函数绘制分组点图(改变分组的次序)实战(dot plot)
  2. R语言KMeans聚类分析确定最优聚类簇数实战:NbClust包(确定最优聚类簇数)
  3. Error in bl_make_text_box(token, drawing_context$gp, drawing_context$yoff_pt) : function ‘Rcpp_preci
  4. R语言PCA主成分分析(Principle Component Analysis)实战1
  5. R语言case_when函数和cases函数实战
  6. 集成学习+ensemble learning
  7. 影像组学视频学习笔记(29)-ICC的计算、Li‘s have a solution and plan.
  8. java restfulapi 返回文件base64_Java反序列化:一次构造后Ysoserial Payload
  9. ML基石_14_Regularization
  10. Python3 列表List