程序入口文件

每个轻语言安卓程序都有一个入口文件(App.spl);这个文件是程序的启动入口,当程序(APP)被系统启动时(用户点击APP图标),系统将优先触发该文件中的 应用被启动 事件,告诉开发者,用户准备启动该程序、且系统已经做好准备,开发者可以在该文件中初始化程序设置,或者自该位置打开、加载一个窗口。

每个轻语言程序都有一个、且唯一的入口文件 App.spl ,每次重新启动程序时,系统都会先回调该文件中的 应用被启动事件,该文件默认结构为(基于轻语言V1.5、IDE 4.7.2):

' 定义权限集合表
变量 待申请权限 为 集合

事件 应用被启动()
    ' 由于安卓6及以上系统、部分敏感权限例如读写储存卡权限需要动态申请;因此该代码为创
    ' 建项目时为方便开发自动添加的、如果该APP不需要动态申请任何权限、删除该段代码即可
    申请系统权限()
    ' 创建指定窗口为启动窗口;可任意设置
    变量 启动窗口 = 创建 主窗口()
    切换窗口(启动窗口)
结束 事件

函数 申请系统权限()
    ' 默认权限都已全部屏蔽、可根据你当前APP所需要的权限解除屏蔽
    待申请权限 = 创建 集合()
    ' 读写手机SD卡文件
    '待申请权限.添加项目("android.permission.READ_EXTERNAL_STORAGE")
    '待申请权限.添加项目("android.permission.WRITE_EXTERNAL_STORAGE")
    '读写日历
    '待申请权限.添加项目("android.permission.READ_CALENDAR")
    '待申请权限.添加项目("android.permission.WRITE_CALENDAR")
    ' 相机、拍照、扫码
    '待申请权限.添加项目("android.permission.CAMERA")
    ' 读写电话簿、联系人
    '待申请权限.添加项目("android.permission.READ_CONTACTS")
    '待申请权限.添加项目("android.permission.WRITE_CONTACTS")
    '待申请权限.添加项目("android.permission.GET_ACCOUNTS")
    ' 对设备定位
    '待申请权限.添加项目("android.permission.ACCESS_FINE_LOCATION")
    '待申请权限.添加项目("android.permission.ACCESS_COARSE_LOCATION")
    ' 录音
    '待申请权限.添加项目("android.permission.RECORD_AUDIO")
    ' 获取手机信息、打电话、获取通话记录
    '待申请权限.添加项目("android.permission.READ_PHONE_STATE")
    '待申请权限.添加项目("android.permission.CALL_PHONE")
    '待申请权限.添加项目("android.permission.READ_CALL_LOG")
    '待申请权限.添加项目("android.permission.WRITE_CALL_LOG")
    '待申请权限.添加项目("android.permission.ADD_VOICEMAIL")
    '待申请权限.添加项目("android.permission.USE_SIP")
    '待申请权限.添加项目("android.permission.PROCESS_OUTGOING_CALLS")
    ' 生物特征传感器;跑步计次、记录心率
    '待申请权限.添加项目("android.permission.BODY_SENSORS")
    ' 读写短信
    '待申请权限.添加项目("android.permission.SEND_SMS")
    '待申请权限.添加项目("android.permission.RECEIVE_SMS")
    '待申请权限.添加项目("android.permission.READ_SMS")
    '待申请权限.添加项目("android.permission.RECEIVE_WAP_PUSH")
    '待申请权限.添加项目("android.permission.RECEIVE_MMS")
    ' 将集合权限转成文本数组并开始申请
    如果(待申请权限.取项目数() == 0)
        返回
    结束 如果
    '
    变量 待申请权限数组 为 文本型[] = 创建 文本型[待申请权限.取项目数()]
    变量循环(索引 = 0,取数组成员数(待申请权限数组),1)
        待申请权限数组[索引] = 待申请权限.取项目(索引) + ""
    结束循环
    申请权限(待申请权限数组,1995)
结束 函数

事件 权限申请完毕(请求码 为 整数型,请求成功的权限 为 文本型[],请求成功结果 为 整数型[])
    ' 这里一般根据待申请的权限长度判断请求结果即可;如果申请了两个权限、请求成功结果
    ' 的长度为2、那么说明所有权限申请成功;如果不等于2则说明部分有拒绝、弹出一个提示
    如果(取数组成员数(请求成功结果) != 待申请权限.取项目数())
        弹出提示("部分权限未成功申请;可能会对APP功能产生一定影响!")
    结束 如果
结束 事件

事件 应用被销毁()
    ' 当应用被关闭时将会触发该事件

结束 事件

事件 应用方向被改变(新方向 为 整数型)
    ' 当 APP 方向被改变时触发该事件;在工程配置中修改窗口方向为:自动
    弹出提示("APP方向被改变:" + 新方向)
    ' 向其它窗口发送方向被改变的事件
    发送事件消息(1,"新方向:" + 新方向)
结束 事件

事件说明

安卓入口文件中总共有四个系统事件:

应用被启动

当 APP 被启动时,系统回调执行,告诉开发者应用已经在系统内准备就绪,程序基架已经在系统中入栈(添加到系统内存了)。此时只需要开始编写 APP 启动后要执行的软件功能即可,安卓默认在该事件中完成了两件事情:

  1. 动态申请应用中需要用到的权限

  2. 创建主窗口、并调用系统函数切换到指定窗口,此时系统将打开窗口、并在屏幕中显示窗口界面。这里的启动窗口可以任意根据需求设置。

权限申请完毕

当调用 申请权限 函数后、系统将回调该事件,可在该事件中判断用户是否允许了某些权限。

应用被销毁

当整个 APP 被关闭时、将触发该事件。

应用方向被改变

在配置窗口中设置屏幕方向为:自动时,当 APP 的屏幕方向(手机发生横竖屏切换时)系统将回调该事件,可在该事件中向指定窗口发送消息,处理窗口根据不同屏幕方向的业务需求。