Android四大组件之Activity

来源:互联网 发布:手机破解压缩文件软件 编辑:程序博客网 时间:2024/05/01 19:54

一、Activity的生命周期

1.方法定义

    onCreate()方法:Activity第一次被创建时调用,总继之以onStart();

   onStart()方法:当Activity正要变得为用户所见时调用,且当Activity重新获得用户焦点时继之以onResume(),而在Activity变为隐藏时继之以onStop();

    onRestart()方法:Activity停止后,在再次启动之前被调用,总继之以onStart();

    onResume()方法:当Activity获得用户焦点时调用,在失去用户焦点时继之以onPause();

    onPause()方法:当Activity失去用户焦点时调用,在重新获得用户焦点时继之以onResume(),而当其变为不可见时继之以onStop();

    onStop()方法:当Activity不再为用户所见时调用,在重新获得用户焦点时继以onRestart(),如果使用finish()关闭了当前Activity则继以onDestroy();

    onDestroy():使用finish()销毁当前Activity时调用。

2.常见的生命周期切换过程

    (1)启动Activity1:

    (2)Activity1跳转到Activity2:

    (3)销毁Activity2后:

    (4)横竖屏的切换:

    (5)当设置android:configChanges="orientation|keyboardHidden"时,横竖屏的切换:

但是,当API版本过高时,横竖屏切换并不执行onConfigurationChanged()方法,横竖屏切换如(4)

二、Activity之间的数据传递

    1.方一(putExtra()的使用):

(1)发送数据

<span style="white-space:pre"></span>Intent intent = new Intent(MainActivity.this,<span style="white-space:pre"></span>SkipActivity.class);<span style="white-space:pre"></span>intent.putExtra("txt", "Hello SkipActivity");<span style="white-space:pre"></span>startActivity(intent);

(2)接收数据

String getString = getIntent().getStringExtra("txt");Toast.makeText(SkipActivity.this, getString, Toast.LENGTH_SHORT).show();

   2.方法二(putExtras(Bundle bundle)方式):

(1)发送数据

<span style="font-size:18px;">    Intent intent = new Intent(MainActivity.this,SkipActivity.class);Bundle bundle = new Bundle();bundle.putString("txt", "How are you,SkipActivity");intent.putExtras(bundle);startActivity(intent);</span>

(2)接收数据

Bundle bundle = getIntent().getExtras();String getString = bundle.getString("txt");Toast.makeText(SkipActivity.this, getString, Toast.LENGTH_SHORT).show();

3.获取跳转过的Activity返回的数据

(1)发送数据:
     Intent intent=getIntent();intent.putExtra("result", "Hello MainActivity");setResult(0, intent);finish();

(2)接收数据:

Intent intent = new Intent(MainActivity.this,SkipActivity.class);startActivityForResult(intent, 0);

   标志0用来区分不同的Activity返回的数据

此外必须重写onActivityResult(……)方法

    @Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {String result = data.getStringExtra("result");Toast.makeText(this, result, Toast.LENGTH_LONG).show();super.onActivityResult(requestCode, resultCode, data);}

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 9个月宝宝粘人怎么办 8个月婴儿粘人怎么办 4个月宝宝粘人怎么办 7个月宝宝粘人怎么办 8个月孩子太粘人怎么办 7个月宝宝太粘人怎么办 两岁宝宝粘人怎么办 孩子屁股被打了怎么办 长期被骂的孩子怎么办 儿童感冒咳嗽怎么办最有效 打了排卵针不排卵怎么办 孩孑上课不专心怎么办 4岁上课不听讲怎么办 孩子上课不认真听讲怎么办 孩子做什么都慢怎么办 7岁上课不听讲怎么办 打孩子脸肿了怎么办 一岁宝宝太调皮怎么办 怀孕早期喝了酒怎么办 怀孕期间喝了酒怎么办 一岁宝宝多动怎么办 3岁前儿童多动症怎么办 好动症的孩子该怎么办 18个月宝宝腹泻怎么办 8个月小孩发烧怎么办 八个月大宝宝发烧怎么办 8个月宝宝拉稀水怎么办 八个月宝宝38度怎么办 8个月的宝宝发烧怎么办 八个月大的宝宝拉肚子怎么办 9孩子上课坐不住怎么办 3岁宝宝太皮怎么办 4岁的宝宝多动症怎么办 小孩好动注意力不集中怎么办 乐扣加热变形了怎么办 3岁宝宝咳嗽厉害怎么办 六个月婴儿呕奶怎么办 刚出生婴儿呕奶怎么办 宝宝拉颗粒便便怎么办 奶水不够宝宝又不吃奶粉怎么办 一岁突然不吃饭怎么办