递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 4671|回复: 4
打印 上一主题 下一主题

[视窗] 关于启动类里的变量有什么讲究吗?

[复制链接]

32

主题

129

帖子

722

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
722
跳转到指定楼层
楼主
发表于 2023-4-2 09:37:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.启动类里的变量是不是不会释放,关闭程序才会释放吗?

2.启动类里设置的变量是不是和静态变量一样?


3.启动类.测试变量 和 取程序().测试变量 有什么不一样吗?

4.别的窗口下有静态变量,窗口销毁后也没有释放吧?是不是放到启动类里更好一些?

5.别的窗口有公开的变量但是不设置静态,窗口关闭后公开的变量会释放吗?
回复

使用道具 举报

69

主题

990

帖子

4470

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4470
沙发
发表于 2023-4-2 09:50:12 | 只看该作者
1.启动类的成员变量在程序结束后释放,局部变量在对应方法结束后释放。
2.应该是一样的,都是在程序结束后释放。
3.启动类.测试变量 是非实例化的变量。取程序().测试变量 是实例化的变量。
4.看情况呗,你觉得放启动类好管理,就放启动类;觉得放普通类好管理就放普通类
5.公开变量和非公开变量的区别在调用上,释放的时机是一样的。
回复

使用道具 举报

444

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
40533
板凳
发表于 2023-4-2 09:54:22 | 只看该作者
别的窗口关闭变量会不会释放取决于这个窗口是不是对话框窗口,如果不是对话框窗口是不会自动释放的。

因为 普通窗口 的变量为成员变量, 而成员变量的释放需要主窗口关闭后才会释放,所以就会导致这个变量如果是一个窗口,即便是这个窗口被关闭也不会被释放。

火山里面的很多对象都存在类似于“释放”的方法,例如:记录集有,关闭记录集的方法,手动调用一下。

安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

26

主题

1900

帖子

6926

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6926
地板
发表于 2023-4-2 13:27:08 | 只看该作者
补充几点:
2. 启动类全局实例的成员变量,生命周期和静态变量一样,都是结束程序后释放,但不能说一样,因为还有静态方法只能调用静态变量这种差别。

3. 启动类实际上是一个对象类型,程序启动时会自动创建一个启动类的全局实例,「取程序」取的是后者。
主要看测试变量是不是静态,如果是静态,那就用 启动类.测试变量;不是静态,那就用 取程序().测试变量
这两种写法不能混用,否则会报错。

4. 类的静态变量都是全局唯一的,直到程序结束才会释放。
如果静态变量只在一个窗口里使用,那就定义在这个窗口里。
会被多个窗口调用的话,你觉得哪里方便就放哪里,也没什么区别。

5. 这要看窗口类实例本身会不会被释放,因为有时只是关闭了窗口,并不一定会销毁窗口类的实例。
比如启动类的成员变量窗口,在程序结束时才释放。
回复

使用道具 举报

32

主题

129

帖子

722

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
722
5#
 楼主| 发表于 2023-4-2 13:43:34 | 只看该作者
:噜阿噜感谢各位回答
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-24 11:52 , Processed in 0.087369 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表