码迷,mamicode.com
首页 > 其他好文 > 详细

在Activity的oncreate方法中如果跳转到别的activity,会发生什么

时间:2015-08-09 17:07:49      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:安卓oncreate方法   activity跳转   执行顺序   安卓怪谈   安卓activity   

真是日*狗,即便你跳转到别的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 方法 

版权声明:本文为博主原创文章,未经博主允许不得转载。

在Activity的oncreate方法中如果跳转到别的activity,会发生什么

标签:安卓oncreate方法   activity跳转   执行顺序   安卓怪谈   安卓activity   

原文地址:http://blog.csdn.net/king866/article/details/47377239

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!