Android四大组件之Activity

一、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(……)方法

    @Override
	protected 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值