Android四大组件之Activity-创新互联

1. 什么是Activity?

成都创新互联是一家专注于成都网站设计、网站建设与策划设计,南陵网站建设哪家好?成都创新互联做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:南陵等地区。南陵做网站价格咨询:028-86922220

是一个可以与用户交互的屏幕,例如打电话、拍照、地图、日历的界面

2. Activity 有7个生命周期方法(生命周期描述的是一个对象从创建(new出来)到死亡的过程中会执行的方法):

onCreate: 在Activity对象被第一次创建时调用

onStart:  当Activity变得可见时调用该函数

onResume: 当Activity开始准备于用户交互时调用该方法

onPause:  当系统将启动另外一个Activity之前调用该方法

onStop:  当前Activity变得不可见时调用该方法

onDestroy:当前Activity被销毁之前将会调用该方法

onRestart:当一个Activity再次启动之前将会调用该方法

1)当从第一个Activity进入第二个Activity,调用第一个activity的onPause,再调用第二个activity的onCreate、onStart、onResume,然后调用第一个activity的onStop

2)当从第二个Activity返回第一个Activi时,调用第二个activity的onPause,再调用第一个activity的onRestart、onStart、onResume,然后调用第二个activity的onStop、onDestroy

3. 生命周期可分为三个状态:无论出于哪一种状态,Activity不会自动释放自己占有的资源 -- 通过在onPause、onStop、onDestroy中写代码释放资源

1)Resumed:Activity对象运行状态

2)Paused: 另一个Activity位于前端,但是本Activity还可见 ,如 对话框

3)Stopped:另一个Activity位于前端,完全遮挡本Activity

4. 绑定布局。每新建一个activity,就要继承(extends)Activity类,复写onCreate(bundle)方法,然后绑定此activity的布局文件XML

public class BaseSwipeBacek extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main_layout);
	}
}

5.创建的activity必须在AndroidManifest.xml里面注册,否则运行会抛出异常

  //包名.类名  (包名可以省略)
        

6.启动Activity

		Intent intent = new Intent();
		intent.setClass(this, SecondActivity.class); //this为Context对象,即当前Activity对象
		startActivity(intent);

7.两个Activity之间数据传递

基本数据类型可以通过Intent进行传递

1)传递数据

		Intent intent = new Intent();
		intent.setClass(this, SecondActivity.class);
		intent.putExtra("key", "数据");  //第一个参数数Key,第一个参数是要传递的数据,可以是任意基本数据类型
		startActivity(intent);

2)取出数据

		Intent intent = getIntent();  
		String str = intent.getStringExtra("key");  //参数为Key,必须与传递过来的key一致

3) 如果要传递对象,可以通过Serializable序列化后在进行传递

  让类实现Serializable接口,通过intent.getSerializableExtra取出对象

		public class Data implements Serializable{
		private static final long serialVersionUID = -3445893843765959236L;  //序列化的串行版本标示
		
		public String name;
		public int age;
		
		public Data(String name, int age){
			this.name = name;
			this.age = age;
		}
	}

		public class FirstActivity extends Activity {
			@Override
			protected void onCreate(Bundle savedInstanceState) {
				super.onCreate(savedInstanceState);
				setContentView(R.layout.main_layout);
				
				Data data = new Data("小明",16);
				Intent intent = new Intent();
				intent.setClass(this, SecondActivity.class);
				intent.putExtra("key", data);
				startActivity(intent);

			}
		}

public class SecondActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.second_layout);
		
		Intent intent = getIntent();
		Data data = (Data) intent.getSerializableExtra("key");
	}
}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页名称:Android四大组件之Activity-创新互联
文章地址:http://azwzsj.com/article/dhjjis.html