Activity调用finish却不立即执行onDestory
来源:互联网 发布:腾讯淘宝精选 编辑:程序博客网 时间:2024/05/18 00:28
遇到一个奇怪的问题,我将打开的Activity放在一个栈里面进行管理,然后当我要关闭所有的Activity的时候
public void CloseAllActivity(){if(activityStack==null)return;while(true){Activity activity = currentActivity();if(activity == null){break;}activity = popActivity();activity.finish();}}虽然每个Activity的finish方法我都调用了,可是他们的onDestory方法缺不是立即执行,而是不知在某个时候执行,后来发现调用了finish后onDestory不是立即被调用,只是我的一厢情愿。
但是随之而来出现了另外的一个问题,那就是我调用了Activity A的finish方法后,他的onDestory方法还没有被执行,但是我再打开这个Activity他走的是onCreate而不是onNewIntent,按理说我设置了android:launchMode="singleTask"这个Activity要是还在栈里面就不会重新创建而是走onNewIntent,难道我执行了finish但是他没有执行onDestory方法,Android根据这个finish方法被执行了,然后就任务已经不在栈里面了,所以就走了onCreate而不是onNewIntent方法?这个只是我根据现象做的假设,还要等有时间去看一下源码验证一下
void com.hyfsoft.viewer.HYFDocviewer.onDestroy()
Perform any final cleanup before an activity is destroyed. This can happen either because the activity is finishing (someone called finish on it, or because the system is temporarily destroying this instance of the activity to save space. You can distinguish between these two scenarios with the isFinishing method.
boolean android.app.Activity.isFinishing()
Check to see whether this activity is in the process of finishing, either because you called finish on it or someone else has requested that it finished. This is often used in onPause to determine whether the activity is simply pausing or completely finishing.
Returns:
If the activity is finishing, returns true; else returns false.
See Also:
finish
- Activity调用finish却不立即执行onDestory
- 关于Activity调用finish却不立即执行onDestory的困惑
- 关于“调用finish() 对应的activity却不调用onDestroy”的体会
- activity的跳转--finish() onDestory() system.exit()
- Activity的finish()与onDestory()的区别
- Activity.finish() 、Activity.onDestory() and System.exit(0)
- Activity详解(生命周期,finish()、onDestory()和System.exit(0) )
- Activity的三种关闭方法分析(finish;onDestory;exit)
- Activity和Fragment的onDestory()区别及Finish()的总结
- Android 单个Activity后台运行,及Activity隐藏但是不调用OnDestory方法
- 关于Activity back 无响应提示ANR 与onStop,onDestory不执行的问题
- Android中调用finish()后不能立即执行onDestroy()的BUG
- Android中调用finish()后不能立即执行onDestroy()的BUG
- activity ondestory()的调用时机
- activity调用finish方法理解
- startActivityForResult跳转,onActivityResult提前执行,目标activity finish()后onActivityResult不执行
- android的 activity之间切换去除动画之原始activity不调用finish
- android中 finish()、onDestory()、exit
- 影响100年的营销启示
- Ubuntu 10.04安装android NDK
- 使用auto_ptr需要注意的地方
- restart Linux network service
- HDU4067 Random Maze 最小费用最大流 福州网络赛
- Activity调用finish却不立即执行onDestory
- 为VS2010工程文件减肥
- linux 下jdk的安装
- 磁盘空间不足。 (异常来自 HRESULT:0x80070070)
- visual studio 2008 试用版评估期已结束的解决方法 [未测试]
- 了解 Windows Vista 内核:第一部分
- 在普通的java类里面怎么获取到当前application的session啊(转)
- 怎样用一根网线连接两个电脑
- strcpy strcmp