Activity深入理解(一)

本文深入探讨了Android Activity的生命周期管理,包括可见、不可见、销毁状态下的关键方法,以及如何通过Bundle对象保存横竖屏切换前的状态信息。同时介绍了Activity的启动方式,包括显式和隐式启动,并提供了具体的代码示例。此外,文章还阐述了onPause()方法的作用及onStop()方法执行时机的重要性,以确保良好的用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Activity的生命周期

对于单个Activity

  • 可见状态
onCreate()->onStart()->onResume()
  • 不可见状态
onPause()->onStop()
onDestroy()
  • 销毁状态
onDestroy()

对于多个Activity

不多讲,只注意一点:
每次打开新的Activity总会调用当前的onPause()方法

交互设计思想

  1. 为什么需要onPause()?是否多此一举?
    用于暂停状态信息,比如暂停音乐视频播放
  2. 要注意onStop()方法是在最后执行的,这又是为什么呢
    这是为了防止在创建第二个Activity时造成当前Activity消失黑屏,造成视觉体验不够良好(onStop执行后才处于不可见状态)

横竖屏切换

  • Bundle对象
    用于保存横竖切换前的状态信息,通过bundle.put()方法

Activity的两种启动方式

  • 显式启动
    直接启动方式就不用说了,直接Intent启动即可,还是简单举个例子吧,举个不常用的Component方式
    java
    ComponentName cn = new ComponentName(this, other.class);
    intent.setComponent(cn);
  • 隐式启动
    什么是隐式启动,其实就是启动其他应用程序的Activity,具体怎么做呢,看代码
    1. 首先在被启动Activity中定义inten-filter
      xml
      <intent-filter>
      <action android:name="www.xxx.com"/>
      <category android:name="......DEFAULT"/>
      </intent-filter>
    2. intent中setAction(“…”)即可

拓展: 启动系统的Activity

//启动浏览器
intent.setAction(Intent.ACTION_VIEW);
Uri url = Uri.parse("http://www.baidu.com");
intent.setData(url);

//启动系统相册
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");  //重写onActivityForResult()

//发送短信
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "your sms text");

//打开电话拨号
intent.setAction(Intent.ACTION_VIEW);
Uri url = Uri.parse("12345678901");
intent.setData(url);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值