• 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);
            }
        });
    }