首页
学习
活动
专区
工具
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(); } 注意这个东西只存在于整个程序的主类中

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

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.2K70

android onresume函数,Android界面跳转时候onDestroy和onResume的调用顺序

Android在界面跳转的时候,比如从Activity A 跳回 Activity B,并不是先执行A的onDestroy,而是执行完A的onPause之后就立即跳回Activity B里的onResume...在执行了Activity B 的onResume之后一两秒甚至更长一点的时间才执行Activity A里的onDestroy。 这样的处理机制应该是为了能够立即响应用户的操作。...假设在这个时候(Activity A的onDestroy还没被调用,但因为Activity B的onResume已运行完毕,所以可以跟Activity B交互)用户点击视频c,再次进入Activity...所以,对时间要求和Activity是否获取焦点密切相关的操作,不能放在onCreate和onDestroy里,而应该考虑放在onResume和onPause里。

1K10

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

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

2.6K10

AngularDart 4.0 高级-生命周期钩子 顶

OnChanges,OnInit,DoCheck(3x),AfterContentInit,AfterContentChecked(3x),AfterViewInit,AfterViewChecked(3x)和OnDestroy...刺探OnInit和OnDestroy 使用这两个间谍钩进行卧底探索,以发现元素何时被初始化或销毁。 这是指令的完美渗透工作。 英雄们永远不会知道他们正在被监视。... @Directive(selector: '[mySpy]') class SpyDirective implements OnInit, OnDestroy { final LoggerService..._logger); ngOnInit() => _logIt('onInit'); ngOnDestroy() => _logIt('onDestroy'); _logIt(String...OnDestroy 将清理逻辑放入ngOnDestroy中,在Angular销毁指令之前必须运行的逻辑。 这是通知应用程序的另一部分组件将要销毁的时间。 这是释放资源的地方,不会自动收集垃圾。

6.1K10

Angular 2 + 折腾记 :(3)初步了解服务及使用

前言 不探究高深理论,只探究实际使用,有更好的写法或者经验请指出; 有些暂时没涉及到的知识我可能会顺着例子解释; ---- 什么是服务 简言之:就是资源获取,以及通讯逻辑处理的地方; Angular2...// vehicle-fault.service.ts // 服务类必须引入这个 import { Injectable } from '@angular/core'; // 自己封装的鉴权 import...复制代码 // 引入一些生命周期的控制,组件值传递响应接口等 import { Component, OnInit, AfterContentInit, OnChanges, SimpleChanges, OnDestroy...} from '@angular/core'; // 引入路由模块 import { Router, ActivatedRoute } from '@angular/router'; // 基类...], animations: [fadeIn] }) export class ListComponent extends MitDataTableBase implements OnInit, OnDestroy

1.6K20
领券