我正在写一个Android游戏,这是我所拥有的:
游戏循环的实现方式为:
我创建了一个自定义视图来扩展视图。然后在我的onDraw()方法中,我调用invalidate();。
主要活动:
在这里,我创建了一个自定义视图的实例,并使用setContentView()将其设置为当前视图。
我也使用OnTouch()方法获取触摸事件
一切正常且顺利,直到我做到了:
我创建了一个新的Graphthread类,并在run方法内部创建了一个循环。
public class Graphthread extends Thread
{
@Override
public void run() {
while(true)
{
}
}
}
然后我在MainActivity中创建了一个实例
Graphthread gth = new Graphthread();
并在我的onCreate方法中使用了gth.start()。
现在发生以下情况:
游戏运行不顺利。或者我应该说它像..运行一段时间..冻结几毫秒...再次运行...再次冻结,依此类推。
怎么了?
最佳答案
像这样的轻微抖动听起来像垃圾回收。如果您的后台线程(或其他线程)正在消耗大量内存,则GC可能需要运行得比预期的要频繁。这将导致您所描述的瞬间抖动。