关于鸿蒙有几个问题,希望大家能够帮忙解答一下
1. 应用程序生命期,Ability生命期是怎样的?Ability, AbilitySlice, AbilityPackage三者是什么样的关系?
2. HiLog接口的用法说明
3. socket接口的用法说明
4. 应用程序权限设置说明
5. Time.setTimeZone()的第二个参数应该如何设置?能否给出可设time zone的完整列表?
6. Time.setTimeZone()调用失败(抛出异常:没有android.permission.SET_TIME_ZONE权限),应该如何解决这个问题?
鸿蒙
HarmonyOS
赞
1
收藏 0
回答 1
已解决
相关问题
关于鸿蒙的话,期待已久了。有没有大佬能帮忙解答一下几个问题
5295浏览 • 4回复 待解决
帐号授权相关问题,和大家讨论一下
10287浏览 • 3回复 待解决
ob有如何下报错,麻烦帮忙看一下?
2214浏览 • 1回复 待解决
Preview预览界面的问题,哪个大佬懂解答一下啊?
2012浏览 • 2回复 待解决
想了解一下大家使用鸿蒙系统的体验
5浏览 • 0回复 待解决
有老铁解答一下么
6062浏览 • 1回复 待解决
看了10.20的直播,有一些关于鸿蒙的问题想问大家
6166浏览 • 2回复 待解决
hilink通用协议估计开发接入,帮忙指导一下。
7340浏览 • 1回复 待解决
IndexBar遇到的问题汇总,希望有人能给解答!!!
7333浏览 • 1回复 待解决
请教一下关于Ticktimer 的疑问?
1205浏览 • 1回复 待解决
想找朋友了解一下关于应用鸿蒙开发,有偿
5348浏览 • 4回复 待解决
谁分享一下鸿蒙视频的功能体验一下啊
4051浏览 • 1回复 待解决
问大家一个问题,关于原服务的?
4902浏览 • 1回复 待解决
关于3861烧录异常报错问题,求解答
5992浏览 • 2回复 待解决
请问一下nodejs能连接oceanbase吗?有驱动吗?
1631浏览 • 1回复 待解决
鸿蒙ACE,FA与PA之间怎么调用啊,有木有大佬技术支持一下
6000浏览 • 1回复 已解决
请教一下linux安装deveco时出现xmodem失败的问题
6142浏览 • 1回复 待解决
想问一下启动权限受限功能的执行时机问题
3172浏览 • 1回复 待解决
请问大家有在openharmony上编译log4cpp的经验不?麻烦分享一下
1002浏览 • 1回复 待解决
分享一下你的鸿蒙系统使用感受吧
1878浏览 • 1回复 待解决
请问一下鸿蒙的pad应用该如何签名?
5587浏览 • 1回复 待解决
dev安装调试问题,这是npm错误吗?求帮助解决一下
6658浏览 • 4回复 待解决
编译OpenHarmony2.0失败,求助一下
6658浏览 • 3回复 已解决
关于Wearable开发的几个疑问
5284浏览 • 2回复 待解决
关于索引的一个问题有懂的吗?
715浏览 • 1回复 待解决
1. 应用程序生命期,Ability生命期是怎样的?Ability, AbilitySlice, AbilityPackage三者是什么样的关系
Ability是应用能力的抽象,分为FA与AA。FA提供与用户交互的能力,可以包含一组AbilitySlice, 每一个页面用一个AbilitySlice实例表示,而AA提供Service(后台服务)与Data模板(数据管理)。FA与AA可以再conifg.json的Ability注册中区分,通过type字段来指定。
AbilityPackage相当于安卓的application
Ability的生命周期
onStart()
当系统首次创建Page实例时,触发该回调。对于一个Page实例,该回调在其生命周期过程中仅触发一次,Page在该逻辑后将进入INACTIVE状态。开发者必须重写该方法,并在此配置默认展示的AbilitySlice。例如super.setMainRoute(FooSlice.class.getName());
onActive()
Page会在进入INACTIVE状态后来到前台,然后系统调用此回调。Page在此之后进入ACTIVE状态,该状态是应用与用户交互的状态。Page将保持在此状态,除非某类事件发生导致Page失去焦点,比如用户点击返回键或导航到其他Page。
当此类事件发生时,会触发Page回到INACTIVE状态,系统将调用onInactive()回调。此后,Page可能重新回到ACTIVE状态,系统将再次调用onActive()回调。因此,开发者通常需要成对实现onActive()和onInactive(),并在onActive()中获取在onInactive()中被释放的资源。
onInactive()
当Page失去焦点时,系统将调用此回调,此后Page进入INACTIVE状态。开发者可以在此回调中实现Page失去焦点时应表现的恰当行为。
onBackground()
如果Page不再对用户可见,系统将可能根据资源状况调用此回调,此后Page进入BACKGROUND状态。开发者应该在此回调中释放Page不可见时无用的资源,或在此回调中执行较为耗时的状态保存操作。
onForeground()
处于BACKGROUND状态的Page仍然驻留在内存中,当重新回到前台时(比如用户重新导航到此Page),系统将先调用onForeground()回调使Page回到INACTIVE状态,然后调用onActive()回调使Page回到ACTIVE状态。开发者应当在此回调中重新申请在onBackground()中释放的资源。
onStop()
此回调表示系统正在销毁Page
2. HiLog接口的用法说明
提供的快速查看LOG的方法,
具体用法如下
private static final HiLogLabel LABEL_LOG = new HiLogLabel(0, 0, “LogUtils“);
该方法提供log打印的属性
private static final String LOG_FORMAT = "%{public}s: %{public}s";
该方法提供log打印出的信息的格式
HiLog.warn(LABEL_LOG, LOG_FORMAT, tag, msg);
该方法提供警告类型的打印信息,tag为用户定义的TAG,msg为打印信息
3.socket接口的用法说明
socket接口位于rt_java包中,用法与java的socket完全一致。例如初始方法 Socket(String host, int port),连接host地址port端口。获取流方法public InputStream getInputStream(), pulic OutputStream getOutputStream()。
鸿蒙sdk下提供了网络DatagramSocket 进行数据传输 方式步聚为
调用NetManager.getInstance()获取网络管理的实例对象。
调用NetManager.getDefaultNet()获取默认的数据网络。
调用NetHandle.bindSocket()绑定网络。
使用socket发送数据
InetAddress address = netHandle.getByName("www.baidu.com");
DatagramSocket socket = new DatagramSocket();
netHandle.bindSocket(socket);
byte[] buffer = new byte[1024];
DatagramPacket request = new DatagramPacket(buffer, buffer.length, address, port);
// 发送数据
socket.send(request);
4. 应用程序权限设置说明
开发者需要再config.json文件中的reqPermissions字段声明需要的权限,支持多个权限同时申请
采用json的list格式
"reqPermissions": [
{
"reason": "",
"name": "harmonyos.permission.SET_WIFI_INFO",
"used-scene": {
"ability": [
".MainAbility"
],
"when": "inuse"
}
},
.......]
其中name字段必选 为权限名称
reason字段可选 让申请权限为user_grant时,则为必选,用于描述申请权限的原因
used-scene字段可选,让申请权限为user_grant时,则为必选 ability字段填写ability的名称,when是使用时机 inuse(使用时),always(始终)
user_grant权限为动态监测权限,每次执行操作都会检查自身是否有该权限。有才可继续执行,否则应用需要请求用户授予权限。
调用方法checkSelfPermission查询权限是否已经授予,如果授予那么结束申请流程,如果没有那么进入申请流程, 调用canRequestPermission是否可动态申请。如果不能申请结束,如果可以那么调用requestPermissionFromUser动态申请权限,并且再回调操作中得到申请的结果。
5、TimeZone.getAvailableIDs() 获取可设time zone的完整列表。
6、在config.json文件中增加权限android.permission.SET_TIME_ZONE。