首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Activity onStop,onDestroy延迟10s执行

最近发现项目里的一个问题.从 Activity A 进入 Activity B.然后从B返回的时候理论上应该是A onResume之后就会走B的onStop,onDestroy.但是并不是,发现在极端情况下会延迟将近...= null) { //finishes 数组,调用onDestroy activityRemoved |= stack.destroyActivityLocked...接下来就有个疑问了,为啥 onStop,onDestroy 没有立即执行?...必须要等到 MessageQueue 里面没有数据的时候才会去调用 也就是说 onStop,onDestroy 的调用和消息队列有关.如果消息队列很快就空了, onStop,onDestroy 就很快返回....如果主线程还有消息未处理(比如一直 invalidate )会一直处理,直到超过10s强制调用 现在终于明白为啥 onStop,onDestroy 没有直接返回.那么文章最初的问题又该如何处理呢?

1.9K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MyApplication.getInstance().exit() 与onDestroy 、finish(),onKeyDown()的关系

    这个时候如果直接调用MyApplication.getInstance().exit() 那么它会是这样执行的  会遍历所以加入的activity执行finish() 而finish执行的时候会执行一次ondestroy...,也就是必须触发这个指令 那么这个代码就是在ondestroy()中执行的, 如果你直接在onkeyDown  也就是通常看见的连接点击退出程序的时候直接调用MyApplication.getInstance...().exit() 就会出错了 当前的你调用的这个类中的ondestroy将不会被执行的 下面是onkeydown和ondestroy的执行顺序: 10-18 21:28:21.471: I/TAG(10652...): 我是onkeydown 10-18 21:28:23.640: I/TAG(10652): 我是onDestroy finish的执行顺序在他们之前 而我的程序是这样写的,在MainActivity...().exit(); super.onDestroy(); } 注意这个东西只存在于整个程序的主类中

    90820

    Angular学习(02)--Angular-CLI命令

    声明 本系列文章内容梳理自以下来源: Angular 官方中文版教程 官方的教程,其实已经很详细且易懂,这里再次梳理的目的在于复习和巩固相关知识点,刚开始接触学习 Angular 的还是建议以官网为主。...正文- Angular-CLI 命令 Angular 的项目其实相比老旧的前端项目模式或者是 Vue 的项目来说,都会比较重一点,因为它包括了: 模块 @NgModel, 组件 @Component,...而且,不仅在创建文件方面,在对项目的编译、打包等各种操作中也需要借助 Angular-CLI。...Angular-CLI 大体上两种类型的命令,一是创建或修改文件,二是类似运行某个脚本来编译、构建项目。...下面,讲讲第二种方式,修改 angular.json 配置文件来修改默认行为: ?

    2.6K10

    Activity onDestroy() 回调缓慢问题分析及完美解决方案

    说到Activity的onDestroy,对所有的Android开发者都很熟悉,但是不一定都知道里面存在着一些坑,分享给大家,以后踩中的时候可以应急 用Activity的时候,会发现如下问题:   ...有时候会发现Activity的onDestroy方法回调比较缓慢(可以达到好几秒钟之后才调用),即使之前使用finish方式关闭Activity也一样 onDestroy回调慢带来什么问题呢?   ...有可能再次打开Activity的时候,都走完了onCreate,onResume之后上一次的onDestroy方法才被调用,想想如果在onResume和 onDestroy中共同维护了一个变量(isActivityShowing...解决方法与建议   所以建议不要在Activity的onDestroy方法中做有关于数据存储,状态维护的事情,回收资源也最好不要完全依赖这个方法,可以用下面的方式 比较靠谱的解决方式 private...if (isFinishing()) { destroy(); } } @Override public void onDestroy

    2.3K70

    Angular专题】——(1)Angular,孤傲的变革者

    漫谈Angular Angular,来自Google的前端SPA框架,与React,Vue并称前端框架的三驾马车,前些日子刚发布了7.0版本。...,但Angular似乎并不在乎,升级迭代的速度反而更快了。...我计划这样学习Angular技术栈 说实话,我接触Angular才2个礼拜,但是我很喜欢它,严谨,优雅,最重要的是VSCode的主题很漂亮。...我的学习计划大约是这样,如果感兴趣,欢迎一起行动起来: 1.慕课网的免费教程里有一个Angular的课程和一个Angular-Cli的课程,可以带你快速入门。...(已完成) 2.阅读官方文档:Angular中文网地址:https://www.angular.cn/ 官方文档特别详细,至少需要通读一次,然后在实际开发中遇到相关问题时再来查询。

    86020

    忘记 Angular 3:Google 将发布 Angular 4

    详细说明将在Angular 2到来的短短6个月后发布Angular 3的计划时,每个人都大吃一惊。...Google的Igor Minar最近在比利时的NG-BE 2016 Angular会议上说,Google将从版本2跳到版本4,以便升级的数量与计划在发布中使用的Angular 4路由器相关。...Angular有一个积极的时间表,Angular 5将在2017年9月或10月到达,6个月后是Angular 6,Angular 7则在Angular 6 6个月后的9月或2018年10月。...接下来的三个月将专门完成Angular 4.0.0。 ? Google对于Angular 4的目标是尽可能与Angular 2向后兼容,并改善编译器错误消息。...本月初,谷歌发布了Angular 2.3,一个旨在Angular Language Service的小的升级版本,被设计与IDE集成,并提供类型完成和与Angular模板的错误检查。

    99620

    angular4实战(1) angular-cli

    https://cli.angular.io/ 提供了搭建一个angular项目的简单介绍。 本文就angular-cli这块的指令属性,在做一些扩展介绍。...npm install -g @angular/cli ng new PROJECT-NAME cd PROJECT-NAME ng serve 通过这四条命令,可以快速创建一个angular项目。...在下载好angular-cli之后,通过在命令行输入ng help可以获得angular-cli的指令详细介绍。 ? 如果新建一个项目仅仅用上述5条,显然是不满足开发需求的,在介绍5条属性。...—routing angular生成的项目默认是不带路由的,而路由在但也应用基本上是必备模块,因此在生成项目时需添加此属性。...本章对angular-cli的介绍到此为止,下章具体介绍路由。 项目地址:https://github.com/jiwenjiang/angular4-material2

    66820

    Angular ElementRef 简介

    Angular 的口号是 - “一套框架,多种平台。同时适用手机与桌面 (One framework.Mobile & desktop.)”...,即 Angular 是支持开发跨平台的应用,比如:Web 应用、移动 Web 应用、原生移动应用和原生桌面应用等。...为了能够支持跨平台,Angular 通过抽象层封装了不同平台的差异,统一了 API 接口。如定义了抽象类 Renderer 、抽象类 RootRenderer 等。...Angular 不是有提供组件生命周期的钩子,我们可以选择一个合适的时机,然后获取我们想要的 div 元素。...不过我们后面也会有专门的文章,详细分析一下 Angular 组件的生命周期。成功取到 div 元素,就剩下的事情就好办了,直接通过 style 对象设置元素的背景颜色。

    1.6K60
    领券