ITPub博客

首页 > 移动开发 > ANDROID > Android四大组件之Activity

Android四大组件之Activity

原创 ANDROID 作者:escing 时间:2020-05-25 11:16:48 1 删除 编辑

Android 四大组件之Activity

一、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

<activity 
android
:name
=".MainActivity"
>

</activity>

这仅仅是一个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

新建一个堆栈


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69917886/viewspace-2694065/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2020-05-21

  • 博文量
    1
  • 访问量
    773