#仅自己学习记录所用,如有疏漏,请多见谅!
1:創建新的activity
通過new一個activity,軟件自動創建好Java類,XML佈局和manifest的配置。
2:啓動新的activity
調用方法:
Intent intent = new Intent(父Activity.this,子Activity.class)
intent.putExtra(鍵,值)
public void startActivity(Intent intent)
intent是component用來與操作系統通信的媒介。
intent可以指定跳轉關係,可以載入數據extra。
可以實現父->子activity的單向数据传递。
3:数据传递
单向发送:
只需要父->子,则使用上述方法。
子activity接收方法:
举例,获取布尔值:receive = getIntent().getBooleanExtra(键,默认值);
双向传递:
发送方:
把startActivity换成:
public void startActivityForResult(Intent intent,int requestCode)
requestCode请求代码用用户定义,用于在一个activity启动多个不同类型的子activity的情况下,识别返回的的消息的回馈方。请求代码是先发送给子activity,然后在返回给父activity。
接收方:
有以下方法可用:
public final void setResult(int resultCode)
public final void setResult(int resultCode ,Intent data)
resultCode结果代码是预定义常量,可以是
Activity.RESULT_OK,
Activity.RESULT_CANCELED
或者用户自定义常量Activity.RESULT_FIRST_USER.
如果接收方不实现上述任何方法(或者没有执行,直接后退返回父Activity),默认返回RESULT_CANCELED。如果实现的话可以自定义选择。
发送方接收:
父Activity覆盖以下方法,实现自己的功能:
protected void onActivityResult(int requestCode,int resultCode,Intent data)
该方法是返回父Activity时候自动调用的。
4:activity的使用和管理
launcher activity概念:启动一个应用,先打开的activity,可以在manifest中看到哪个activity被配置为launcher activity。
ActivityManager:操作系统级别的activity管理器,管理所有应用的activity栈。(非特定应用独享的回退栈)