在Activity的oncreate方法中如果跳转到别的activity,会发生什么
2015-08-09 16:57
344 查看
真是日*狗,即便你跳转到别的Activity,其余的代码一样执行
首先做实验,证明它就是这样发生的protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); System.out.println("aaaaaaaaaaaaaaaaaa"); new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub handler.sendEmptyMessage(1); System.out.println("bbbbbbbbbbbbbbbbbbb"); } }).start(); System.out.println("ccccccccccccccccc"+i); } private void init() { Intent intent=new Intent(this,TwoActivity.class); startActivity(intent); }可能你会觉得aaaaaaaaaa不会被打印出来,我刚开始也是这么觉得
但是aaa bbb cccc 都输出 出来啦 ,而且还跳转啦,那么问题来啦 怎么会这样
我真的觉得特别好奇,难道是我手机的问题,结果显然不是
一般情况下,跳转到其他Activity都会执行onpause()方法,
对问题就在这!!!!!!!!!!
然后我在onpuase 中这么写
@Override protected void onPause() { // TODO Auto-generated method stub System.out.println("pause--pause---pause"); super.onPause(); }
结果在 a b c 之后打印出onpause ,为什么呢????
经过一番思考,得出结论
由于在跳转时,这个activity的oncreate方法 并没有执行完毕,所以不会执行onpause ,知道oncreate方法 执行完毕才会执行onpause ,
那么另一个问题来啦???到底init()方法执行时,有没有跳转,于是我在另一个activity 的oncreate方法 中这样写
protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.main); System.out.println("two two two "); }看看打印结果 应该就有结论
08-09 16:46:37.926: I/System.out(20472): pause--pause---pause
08-09 16:46:38.005: I/System.out(20472): two two two
小伙伴们 看到啦 吗
只有activity 的oncreate的方法 执行完毕 才会跳转
如果在 oncreate方法中加上
for (int i = 0; i < Integer.MAX_VALUE; i++) { System.out.println("ddddddddddddddddd"+i); }结果就是 一直循环 只有执行完毕这个循环 才会 执行onpause 然后才会跳转
切记啊!!!!!!!!!!!!! ocreate 方法中 尽量不要写 startActivity()
如果有这个 别的初始化方法就不用执行啦 尽快结束 oncreate 方法
相关文章推荐
- 数据结构学习---队列的链式储存实现
- Hadoop分布式文件系统--HDFS结构分析
- HDU 1075-What Are You Talking About(Trie)
- 数据结构学习---队列的链式储存实现
- 智渔课堂官方免费教程二(拓展):Java软件开发环境的安装与配置
- 通过Kafka Admin API执行并获取结果到客户端
- C++ STL的底层数据结构都是啥
- 华为上机 取石子游戏
- I学霸官方免费教程二(拓展):Java软件开发环境的安装与配置
- hdu5358 First One
- uva 1486 Transportation (费用流+拆边)
- 《围住神经猫》的逃跑路径算法
- 轻量级文本编辑器,Notepad最佳替代品:Notepad++
- Android Format的使用
- Linux下用php调用C接口(扩展)的资料
- 管道,信号量,共享内存,socket的实际使用场景和NSPipe管道的使用
- jQuery中的Ajax
- (算法:二分查找)在排序数组中,找出给定数字出现的次数
- 2015公务员工资改革消息:广州人社局长称基层公务员工资肯定会增不少
- Java的date和以datetime为字段的数据库的处理办法