所有文档及实例均为老师编写归纳,版权均归我的android老师所有,如有侵权即删
Activity创建:
1. 创建一个class继承Activity或者Activity的子孙类。
2. 在清单文件中声明Activity
3. 在创建的类中。重写onCreate方法,在其中添加setContentView方法指定activity的界面
package com.example.activity_1;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class OneActivity extends Activity {
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.d("yuanbin", "----onCreate----");
super.onCreate(savedInstanceState);
setContentView(R.layout.one_layout);
}
@Override
protected void onStart() {
Log.d("yuanbin", "----onStart----");
super.onStart();
}
@Override
protected void onResume() {
Log.d("yuanbin", "----onResume----");
super.onResume();
}
@Override
protected void onPause() {
Log.d("yuanbin", "----onPause----");
super.onPause();
}
@Override
protected void onStop() {
Log.d("yuanbin", "----onStop----");
super.onStop();
}
@Override
protected void onDestroy() {
Log.d("yuanbin", "----onDestroy----");
super.onDestroy();
}
@Override
protected void onRestart() {
Log.d("yuanbin", "----onRestart----");
super.onRestart();
}
public void buttonClick(View v) {
switch (v.getId()) {
case R.id.one_btn: {
break;
}
case R.id.two_btn: {
startActivity(new Intent(this, TwoActivity.class));
break;
}
case R.id.three_btn: {
break;
}
default:
break;
}
}
}
package com.example.activity_1;
import android.app.Activity;
import android.os.Bundle;
public class TwoActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.two_layout);
}
}
Activity的结束:
1. 点击back键结束activity
2. 调用finish方法结束activity
3. 异常退出activity
4. 通过System.exit()退出activity
一、activity的生命周期
1. oncreate:activity在创建时执行
2. onstart:activity从不可见到可见的时候执行
3. onresume:activity可见,获取到activity焦点时候执行
4. onpause:activity可见,失去焦点的时候执行
5. onstop:activity从可见到不可见的时候执行
6. ondestory:activity销毁的时候执行
7. onrestart:activity从stop状态从新启动时执行
二、activity的启动方式(2种,通过intent实现)
1. 显示:直接指定包名和类名启动
2. 隐式:通过intent-filter匹配action/category/data,来启动activity
想隐式启动一个activity,必须在清单文件中对这个Activity指定一个intent-filter。
intent-filter中必须包含:action和category
PS:匹配方式参考intent笔记
显示和隐式的区别:
1. 显示启动:指定一个特定的人去做特定的事情
2. 隐式启动:指定特定对的事情,完成事情的人不确定(当可选人唯一的时候,和显示一样)
3. 显示启动不能夸应用启动,隐式启动可以完成夸应用启动(隐式启动是根据清单文件的信息来查询的,清单文件都是托管给系统,作为系统是有跨进程能力的,本身应用是没有跨进程能力的)
三、activity的启动模式(4种)
1. standard:每次启动activity都在task栈中新建一个空间存放启动的activity
2. singleTop:当且仅当要启动的activity在栈顶时,不创建新的空间存,直接使用栈顶的空间
3. singleTask:当启动一个被指定为singleTask的activity时,系统首先检测当前的task栈中有没有这个activity,如果没有,新建一个空间存放。如果存在,像弹夹一样,先移除所有在其之上的activity,然后显示栈顶
4. singleInstance:当启动一个被声明为singleInstance的activity是,系统会创建一个新的task来唯一存放这个activity
四、activity的数据传递(通过intent实现)
1. 启动传递
2. 结束传递