Android中的Activity

Activity

创建Activity的要点

  1. 一个Activity就是一个类,并且这个类要继承Activity
  2. 需要复写onCreate方法
  3. 每一个Activity都需要在AndroidManifest.xml文件当中进行配置
  4. 为Activity添加必要的控件

Activity和Intent

Activity之间的跳转可以通过Intent来实现的。

一个Intent对象包含一组信息:
1. Component name 指定跳转到另一个应用程序(Activity)的名字
2. Action
3. Data
4. Category
5. Extras 额外的键值对信息
6. Flags

传送方的Activity

//生成一个Intent对象
    Intent intent = new Intent();
//在Intent对象当中添加一个键值对
    intent.putExtra("testIntent", "123");
//设置Intent对象要启动的Activity
    intent.setClass(Activity02.this, OtherActivity.class);
//通过Intent对象启动另外一个Activity
    Activity02.this.startActivity(intent);

启动发送短信的Activity(Intent可以在不同应用程序的Activity中传输数据)

Uri uri = Uri.parse("smsto://0800000123");    
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);    
intent.putExtra("sms_body", "The SMS text");    
startActivity(intent);

接收方的Activity

//取得从上一个Activity当中传递过来的Intent对象
    Intent intent = getIntent();
//从Intent当中根据key取得value
    String value = intent.getStringExtra("testIntent");
//根据控件的ID得到响应的控件对象
    myTextView = (TextView)findViewById(R.id.myTextView);
//为控件设置Text值
    myTextView.setText(value);

Android中的Activity状态以及生命周期

Acitivity有四种基本状态:
  1. Active/Running:一个新的Activity入栈后,它在屏幕最前端,处于栈的最顶端,处于可见并且可交互的激活状态。
  2. Paused:当Activity被另一个透明或者对话框样式的Activity覆盖时的状态。此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互。
  3. stopped:当Activity被另一个Activiry覆盖,失去焦点并不可见时的状态。
  4. Killed:Activity被系统杀死回收或者没有被启动时的状态。
Activity的生命周期

1、onCreate(Bundle savedInstanceState):一个Activity的实例被启动时调用的第一个方法。一般情况下,我们都覆盖改方法作为应用程序的一个入口点,在这里做一些初始化数据、设置用户界面等工作。大多数情况下,我们都要在这里从xml中加载设计好的用户界面。

2、onStart():当activity可见时被调用。该方法在onCreate方法之后被调用,或者在Activity从Stop状态转换为Active状态时被调用。

3、onResume():当用户可以和activity交互,获取焦点时被调用。这时候当前的activity位于activity栈顶的位置。在 Activity从Pause状态到Active状态时被调用。一般在这块做数据恢复工作。

4、onPause():在Activity从Active状态转换到Pause状态时被调用。一般我们在这里保存Activity
的状态信息。

5、onStop() :在 Activity 从 Active 状态转换到 Stop 状态时被调用。

6、onDestroy() :在 Active 被结束时调用,它是被结束时调用的最后一个方法,在这里一般做些释放资源,清理内存等工作。调用它有两种情况:程序中调用finish方法;为了节省空间,回收掉当前不可见的activity。

7、onRestart(): 在 Activity 从 Stop 状态转换为 Active 状态时被调用。

Activity生命周期变化的例子

1.我们一般打开一个程序的时候,就会先后执行该程序主Activity的onCreate()->onStart()->onResume()三个方法。

2.我们退出程序(或者点击BACK键),就好先后执行该Activity的onPause()->onStop()->onDestory()三个方法。

3.当我们打开应用程序时,比如浏览器,我正在浏览NBA新闻,看到一半时,我突然想听歌,这时候我们会选择按HOME键,然后去打开音乐应用程序,而当我们按HOME的时候,Activity先后执行了onPause()->onStop()这两个方法,这时候应用程序并没有销毁。

4.而当我们再次启动ActivityDemo应用程序时,则先后分别执行了onRestart()->onStart()->onResume()三个方法。这里我们会引出一个问题,当我们按HOME键,然后再进入Activity应用时,我们的应用的状态应该是和按HOME键之前的状态是一样的。所以,我们一般在onPause()里面保存一些数据和状态。在onResume()里面来恢复数据。

你可能感兴趣的:(android,Activity)