Android之程序活动单元Activity

    执笔giao天涯

 



               

                                        Activity的生命周期

  • 在Android系统中,用户与程序的交互是通过Activity完成的。Activity是Android应用程序的四大组件之一,它负责管理Android应用程序的界面。一个应用程序一般会包含若干个Activity,每一个Activity组件负责一个界面的展现。 

  • 程序中的每个对象都有自己的生命周期,也就是从创建到销毁的过程。Activity也具有自己的生命周期,Activity的生命周期中分为五种状态,分别是启动状态、运行状态、暂停状态和停止状态、销毁状态。

    1、运行状态:当Activity在屏幕的最前端时,它是可见的、有焦点的。 

    2、暂停状态:在某些情况下,Activity对用户来说仍然是可见的,但它不再拥有焦点,即用户对它的操作是没有实际意义的。  

    3、停止状态:当Activity完全不可见时,它就处于停止状态,但仍然保留着当前状态和成员信息。然而这些对用户来说都是不可见的。

  • Activity从一种状态转变到另一种状态时会触发一些事件,执行一些回调方法来通知状态的变化,具体方法如下所示: 

   void onCreate(Bundle savedInstanceState):创建时执行

   void onStart():可见时执行

   void onRestart():回到前台,再次可见时执行

   void onResume():获取焦点时执行

   void onPause():失去焦点时执行

   void onStop():用户不可见进入后台时执行

   void onDestroy():销毁时执行

                     

                           Activity的创建、配置、开启和关闭 

Activity的创建可以通过两种方式:

1、使用菜单命令【New】a【Activity】a【Empty Activity】

2、自己写一个继承自AppCompatActivity的类。(一个Activity对应一个布局,再需要创建一个layout,在layout中添加)

//将Activity和布局文件绑定
xmlns:tools="http://schemas.android.com/tools"
tools:context=".Activity的名称"

Activity开启和关闭

   开启Activity:startActivity()

   在MainActivity的onCreate()方法中启动

   SecondActivityIntent intent = new Intent(MainActivity.this,SecondActivity.class);

   startActivity(intent);

   关闭Activity:finish();

Intent与IntentFilter 

  • Intent被称为意图,是程序中各组件进行交互的一种重要方式,他不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递。

  • 一般用于启动Activity、Service以及发送广播等。根据开启目标组件的方式不同,Intent被分为两种类型显示意图和隐式意图。

  • 显式意图可以直接通过名称开启指定的目标组件

  • 隐式意图通过指定action和category等属性,系统根据这些信息进行分析后寻找目标Activity

显示意图:(精准匹配)

     Intent intent = new Intent(this, SecondActivity.class);

    startActivity(intent);

隐式意图:(模糊匹配即让系统自己筛选符合条件的目标)

使用隐式意图的时候要配合intent-filter即隐式过滤器来使用 ,intent-filter里面需要指定的数据一般有三个(action、data、category)

action:表示intent对象要完成的动作是什么,是一个字符串。

data:是对action的一个补充,是一个路径,通常是一个uri

category:是一个类别表示对action添加的额外信息。

  • 当发送一个隐式Intent后,Android系统会将他与程序中的每一个组件的过滤器进行匹配,匹配属性有 action、data、category,需要这三个属性都匹配成功才能唤起相应的组件。

 

//在project1中的activity启动project2:
    
    //1、在project2的清单文件中添加intent-filter。

<activity android:name="cn.haue.Activity02">

        <intent-filter>

            <action android:name="cn.haue.START_ACTIVITY"/>

            <category android:name="android.intent.category.DEFAULT"/>

        </intent-filter>

    </activity>

    //2、在project1的mainactivity中书写一下代码
     Intent intent = new Intent();//创建intent
     intent.setAction("cn.haue.START_ACTIVITY");//设置动作,一定要和意图过滤器中的名字一样
     startActivity(intent); //开启页面

 

动态申请权限实例(简单浅层次)

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值