理解Activity:
- 定义: Android定义的四大组件之一,用的最多的一个组件(常用的手机屏幕可以算是一个Activity),其实可以理解为一个容器。
- 作用: 提供一个能让用户操作并与之交互的页面。(一个App可以有多个页面,也就是可以包含多个Activity。)
- 例子: 打电话,发短信,拍照等功能都是通过Activity来做的
- Activity: 四大应用组件之一
onCreate(): 自动调用的方法, 在其中加载布局显示
setContentView(int layoutId): 加载布局
View findViewById(int id): 根据id找到对应的视图对象
R: 应用的资源类
R.drawable: 包含所有图片资源标识的内部类
R.layout: 包含所有布局资源标识的内部类
R.id: 包含所有视图id标识的内部类
R.string: 包含所有字符串标识的内部类
View/Button: 视图/按钮
setonClickListener(listener): 给视图设置点击监听
View.OnClickListener : 内部接口
void onClick(View v) : 点击事件的回调方法
Toast: 用来显示短时间提示文本的类
static Toast makeText(…) : 创建一个toast对象
show(): 显示小提示
Intent理解
Intent意思是:意图 ,相当于你想干什么,你要干嘛?
作用:一般作为Activity,Service,BroadcastReceiver三个组件进行通信交互
例如:AActivity启动BActivty,就必须使用Intent对象
Intent对象可以携带数据传给BActivity。
注意: Intent不是Android中的四大应用组件之一
intent对象分为显示意图和隐式意图
显示意图 : 明确指定的目标组件的意图
创建对象 : Intent(Context context, Class clazz)
何时使用 : 当操作当前自己应用的组件时使用
隐式意图 : 没有明确指定目标组件的意图
创建对象 : Intent(String action)
何时使用 : 当操作其它应用的组件时使用
IntentFilter的理解
在配置Activity时, 可以为Activity指定一个IntentFilter的配置
如果你的Activity希望其它应用能访问到, 需要配置<intent-filter>
如果你想启动其它应用的界面你必须用隐式intent, 且目标界面Activty配置了<intent-filter>
它的作用类似于web中的为Servlet配置的<url-pattern>
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190306195825323.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5NjI2NDYy,size_16,color_FFFFFF,t_70)
API总结
Intent: 意图
Intent(Context packageContext, Class<?> cls) : 用于创建显示意图对象
Intent(String action): 用于创建隐式意图对象
putExtra(String name, Xxx value): 保存额外数据
Xxx getXxxExtra(String name): 获取额外数据
setData(Uri data): 设置有特定格式的uri数据
Activity: 活动
startActivity(Intent intent): 一般启动Activity
startActivityForResult(int reqCode, Intent intent): 带回调启动Activity
onActivityResult(int reqCode, int resultCode, Intent data): 回调方法
setResult(int resultCode, Intent data): 设置要返回的结果
finish(): 结束当前Activity
getIntent(): 得到启动Activity的意图
Activity生命周期相关方法
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/49afeba2ac72c6f134dfe7d9855aa2a5.png)
View: 代表视图的根基类
setOnClickListener(OnClickListener listener): 设置点击监听
setOnLongClickListener(OnLongListener listener): 设置长按监听
SmsManager: 发送短信的工具类
static SmsManager getDefault() : 得到当前对象
sendTextMessage(...): 发送短信
设置点击监听的2种方式
方式一: Activity中添加监听:
view.setOnClickListener(OnClickListener listener);
方式二: 布局添加监听:
layout中: android:onclick=“方法名”
Activity中: public void 方法名(View v) { }
设置长按监听
view.setOnLongClickListener(OnLongClickListener listener)
编写Activity的基本步骤
1.编写Activity的子类
2.添加清单文件配置AndroidManifest.xml
3.布局文件的编写layout
4.将布局文件加入setContentView()中
启动一个Activity
一般启动
startActivity(Intent intent)
带回调的启动
startActivityForResult(int reqCode, Intent intent)
onActivityResult(int reqCode, int resultCode, Intent data)
如何携带额外数据
intent.putExtra(name, value)
如何获取携带的额外数据
Xxx intent.getXxxExtra(name)
如何得到启动的intent
Intent getIntent()
结束一个Activity
一般结束
finish()
带结果的结束
setResult(int resultCode, Intent data)
finish()
Activity界面的四种状态:运行状态: 可见也可操作,暂停状态: 可见但不可操作,停止状态: 不可见,但对象存在,死亡状态: 对象不存在
Activity启动的四种方式:
配置activity清单launchMode属性
launchMode属性值(4个)为:
standard:
标准模式,每次调用startActivity()方法就会产生一个新的实例。
singleTop:
如果已经有一个实例位于Activity栈的顶部时,就不产生新的实例;如果不位于栈顶,会产生一个新的实例。
singleTask: (个人比较常用)
只有一个实例, 默认在当前Task中
singleInstance:
只有一个实例, 创建时会新建一个栈, 且此栈中不能有其它对象