程序入口文件
每个轻语言安卓程序都有一个入口文件(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 启动后要执行的软件功能即可,安卓默认在该事件中完成了两件事情:
-
动态申请应用中需要用到的权限
-
创建主窗口、并调用系统函数切换到指定窗口,此时系统将打开窗口、并在屏幕中显示窗口界面。这里的启动窗口可以任意根据需求设置。
权限申请完毕
当调用 申请权限
函数后、系统将回调该事件,可在该事件中判断用户是否允许了某些权限。
应用被销毁
当整个 APP 被关闭时、将触发该事件。
应用方向被改变
在配置窗口中设置屏幕方向为:自动
时,当 APP 的屏幕方向(手机发生横竖屏切换时)系统将回调该事件,可在该事件中向指定窗口发送消息,处理窗口根据不同屏幕方向的业务需求。