如何处理另一个class?
How to dispose from another class?
我有一个主要的 class 实现了 ApplicationLister 和一堆其他的 class 没有实现任何东西,我的想法是这样的。
//I create a method for is disposing on my other classes
public void disposable(){
//things to dispose
}
// and then call the method on the main class
public void dispose(){
classObj.disposable();
}
我的想法好吗?还有我怎么知道所有的 classes/methods 是一次性的。
libgdx中有一个接口强制你实现dispose方法。它允许您将所有一次性用品放入列表中并在最后处理它们。最后,在每个持有资源(例如 Assetmanager 或 Screen 实现)的对象上实施 dispose 并不是一个坏主意。但是你并不需要它来处理所有事情,因为当垃圾收集器对它进行 运行 处理时,对象确实会被销毁。您不能故意删除对象。
查看实现此功能的 Disposable Interface 和 classes,以了解您可以处理哪些 classes。正如已经提到的,它用于 class 拥有资源的 es。
一个简单的 class 看起来像这样:
public class Foo implements Disposable{
@override
public void dispose()
{
//release the resources used here like textures and so on
}
}
它看起来确实像你的方法,但你可以将所有一次性用品添加到列表中,以便在游戏关闭时处理:
ArrayList<Disposable> disposables = new ArrayList<Disposable>();
Foo myFoo = new Foo();
disposables.add(myFoo);
//game is running
//....
//
for(Disposable d : myFoo)
{
d.dispose();
}
//end of the main
尝试使用 Libgdx 实用程序 classes.
进一步阅读有关处置及其原因的知识:
Memory Management from libgdx Wiki
这里的一个重要句子是:
[...] implement a common Disposable interface which indicates that
instances of this class need to be disposed of manually at the end of
the life-time.
我有一个主要的 class 实现了 ApplicationLister 和一堆其他的 class 没有实现任何东西,我的想法是这样的。
//I create a method for is disposing on my other classes
public void disposable(){
//things to dispose
}
// and then call the method on the main class
public void dispose(){
classObj.disposable();
}
我的想法好吗?还有我怎么知道所有的 classes/methods 是一次性的。
libgdx中有一个接口强制你实现dispose方法。它允许您将所有一次性用品放入列表中并在最后处理它们。最后,在每个持有资源(例如 Assetmanager 或 Screen 实现)的对象上实施 dispose 并不是一个坏主意。但是你并不需要它来处理所有事情,因为当垃圾收集器对它进行 运行 处理时,对象确实会被销毁。您不能故意删除对象。
查看实现此功能的 Disposable Interface 和 classes,以了解您可以处理哪些 classes。正如已经提到的,它用于 class 拥有资源的 es。
一个简单的 class 看起来像这样:
public class Foo implements Disposable{
@override
public void dispose()
{
//release the resources used here like textures and so on
}
}
它看起来确实像你的方法,但你可以将所有一次性用品添加到列表中,以便在游戏关闭时处理:
ArrayList<Disposable> disposables = new ArrayList<Disposable>();
Foo myFoo = new Foo();
disposables.add(myFoo);
//game is running
//....
//
for(Disposable d : myFoo)
{
d.dispose();
}
//end of the main
尝试使用 Libgdx 实用程序 classes.
进一步阅读有关处置及其原因的知识: Memory Management from libgdx Wiki
这里的一个重要句子是:
[...] implement a common Disposable interface which indicates that instances of this class need to be disposed of manually at the end of the life-time.