- Activity启动模式
- Activity生命周期
- Activity之间的跳转
- Activity中的数据传递
Activity创建三部曲
- 新建类继承Activity或其子类
- 在AndroidManifest中申明
- 创建layout并在Activity的onCreate中设置
1)包名处点击右键选择【new】——>[Activity]——>[Empty Activity]选项,填写Activity信息,完成创建。
Activity生命周期
- 启动状态
- 运行状态
- 暂停状态
- 停止状态
- 销毁状态
package com.example.zzm.activitycreate;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i("MainActivity", "调用onCreate方法");
}
//当页面可见执行时
@Override
protected void onStart() {
Log.i("MainActivity", "调用onStart方法");
super.onStart();
}
//当Activity获取焦点开始与用户交互时
@Override
protected void onResume() {
Log.i("MainActivity", "调用onResume方法");
super.onResume();
}
//当Activity被覆盖(失去焦点,用户不可以进行交互)
@Override
protected void onPause() {
Log.i("MainActivity", "调用onPause方法");
super.onPause();
}
//当页面不可见的时候执行
@Override
protected void onStop() {
Log.i("MainActivity", "调用onStop方法");
super.onStop();
}
//当页面销毁时执行
@Override
protected void onDestroy() {
Log.i("MainActivity", "调用onDestroy方法");
super.onDestroy();
}
//当页面重新启动
@Override
protected void onRestart() {
Log.i("MainActivity", "调用onRestart方法");
super.onRestart();
}
}
Android中的任务栈
- 先进后出
Activity的四种启动模式
Activity是由任务栈管理的,每启动一个Activity,就会被放入栈中,按返回键,就会从栈顶移除一个Activity
- standard:标准模式、默认
standard是默认的启动模式。每启动一个Activity,都会创建一个新的实例。 - singleTop:Task栈顶复用模式
- singleInstance:全局单例模式
- singleTask:Task栈内复用模式
Activity之间的跳转和数据传递
Intent介绍
- 意图,是程序中各组件进行交互的一种重要方式,它不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递
- 一般用户启动Activity,Service以及发送广播等,根据开启目标组建的方式不同,Intent被分为两种类型显示意图和隐式意图。
- 显示意图:可以直接通过各种开启指定的目标组件
- 隐式意图:通过指定的action和category等属性,系统根据这些信息进行分析后寻找目标Activity
//1.通过显示意图开启Activity
Intent intent=new Intent(this,Main2Activity.class);
startActivity(intent);
//2.通过隐式意图开展Activity
Intent intent1=new Intent();
intent1.setAction("com.example.zzm.main2");
intent.addCategory("android.intent.category.DEFAULT");
startActivity(intent1);
开启系统浏览器的实例
//1.找到按钮 并设置点击事件
Button button=(Button)findViewById(R.id.main_button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//2.通过隐式意图来开启意图 浏览器
Intent intent =new Intent();
//3.设置开启浏览器动作
intent.setAction("android.intent.action.VIEW");
//4.设置要打开的网页
intent.setData(Uri.parse("http;//www.baidu.com"));
//5.开启页面
startActivity(intent);
}
});
}