关于android:Android四大组件之Activity

28次阅读

共计 2615 个字符,预计需要花费 7 分钟才能阅读完成。

一、Activity 是什么

1、Activity 就是有界面的 Android 程序的根底,比方只有是有界面的 android 软件都是由流动在运行。没有流动的程序,你是看不到界面的,看不到的程序,也有他的用途,比方播送,服务等后盾就能够运行的

2、一个含有 Activity 的程序,必定要有一个作为主页面的

3、流动能够互相调用,包含本身,也包含其余的程序

二、Activity 创立

一个 Activity 要应用起码要有两个因素:

1、继承自流动的源文件

//AppCompatActivity 是 Activity 的一个子类
public class MainActivity extends AppCompatActivity {     
 @Override
// 此函数上面会提到     
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
// 要操作的函数     } }

2、在清单文件中为源文件申明 Activity

<span style="font-size:12px;color:#E8BF6A"><activity </span>

<span style="font-size:12px;color:#9876AA">android</span>

<span style="font-size:12px;color:#BABABA">:name</span>

<span style="font-size:12px;color:#6A8759">=".MainActivity"</span>

<span style="font-size:12px;color:#E8BF6A">>


 </activity></span>

这仅仅是一个 activity 的应用,如果想一个有界面的的程序,必定要一个主页面,这个时候就要 如下:

<activity android:name=".MainActivity">

           //

申明属性

     <intent-filter>

           // 这两个配套应用,程序已启动就启动这个 activity

           //

如果别的 activity 有人应用这个,那么排在后面就是主界面 

     <action 

android

:name

="android.intent.action.MAIN" 

/>

     <category 

android

:name

="android.intent.category.LAUNCHER" 

/>

 </intent-filter>

 </activity>

3、为 Activity 设置粗劣的界面

 // 此句放在 onCreate 的 super 的上面 // 你的界面文件

setContentView(R.layout.activity_main);

三、Activity 启动
1、显示启动另一个流动

// A 代表的是以后的 activity 名,B 代表的是要启动的 activity 名

Intent i=new Intent(A.this,B.class);

//

启动

startActivity(i)

;

2、隐式启动(能够启动别的软件的 acitvity)

Action 代表的是你要启动的 activity 的清单属性的 action

Intent i=

new 

Intent(“action”)

;

startActivity(i)

;

四、Activity 生存周期
在任何周期里,执行了 finish(); 就间接调用了 onDestory(),activity 间接被销毁了

1、返回栈

Android 应用堆栈来治理流动,先进后出

如果有 2 个页面:A,B,

第一种状况:如果 A 页面是显示的必定是位于堆栈的顶部。

第二种状况:此时 B 页面被 A 页面调用进去,B 页面显示,A 页面隐没,B 就在堆栈的顶部,那么 A 就在 B 的上面

第三种状况:此时 B 自毁了,那么只有 A 还在堆栈里,A 就在栈顶

2、活动状态

第一种状况 A 对应的是 running

第二种状况 A 对应的是 stopped

第三种状况 B 对应的是 killed,A 对应的是 Running

3、回调函数

依照执行程序

//activity 一创立就执行 onCreate   我的了解就是相当于构造方法
// 如果 activity 不在堆栈里,就会从新创立
protected void 
onCreate
(Bundle savedInstanceState) {

     
super
.onCreate(savedInstanceState)
;

  
setContentView(R.layout.

activity_main
)
;

 
}

 //activity
在用户可见状态,但不能被操作,能够做一些初始化操作
//
如果 activity 在堆栈里则是先执行 onStart 初始化 --->onResume 调到栈顶

 
protected void 
onStart
() {

     
super
.onStart()
;

 
}

 //
以后 activity 属于运行状态,用户可见可操作

 
protected void 
onResume
() {

     
super
.onResume()
;

 
}

 //
以后 activity 被笼罩,就比方放在后盾,你能够看见,然而操作不了

 
protected void 
onPause
() {

     
super
.onPause()
;

 
}

 //
以后 activity 齐全看不到
//
不在栈顶了

 
protected void 
onStop
() {

     
super
.onStop()
;

 
}

 //
以后 activity 被销毁了

 
protected void 
onDestroy
() {

     
super
.onDestroy()
;

 
}

五、Activity 启动模式

1、Standard

每次关上一次 activity 就创立一个工作到堆栈里,意思就是 A 关上 B,B 再关上 A(不是返回),此 A 非彼 A,两个工作 id 不一样,android 默认的启动形式

2、single Top

会检测该 Activity 是否在栈顶,如果在栈顶就复用,如果不是在栈顶就从新创立

3、single Task

检测是不是在堆栈里,如果在堆栈里,间接把在他下面的都 kill 掉

4、single instance

新建一个堆栈

源码附件曾经打包好上传到百度云了,大家自行下载即可~

链接: https://pan.baidu.com/s/14G-b…

提取码: yu27

百度云链接不稳固,随时可能会生效,大家放松保留哈。

如果百度云链接生效了的话,请留言通知我,我看到后会及时更新~

开源地址

码云地址:

http://github.crmeb.net/u/defu

Github 地址:

http://github.crmeb.net/u/defu

正文完
 0