Android Libgdx应用程序仅在重新安装或重新启动后启动

时间:2013-03-17 02:59:53

标签: android libgdx

主要问题是应用程序仅在安装或重新启动后启动。 第二次应用程序无法正常运行。 详情如下。

我遇到了一些奇怪的问题

1) Libgdx did not detect screen size correctly on Android 4 in
   SCREEN_WIDTH = Gdx.graphics.getWidth();

我得到369*320而不是960*540

我按照以下方式解决这个问题:

  • 我运行了主Activity课程,我使用Display
  • 获取了屏幕尺寸
  • 然后我运行AndroidApplication课程,开始Admob和Libgdx课程。

2)第二个问题是应用程序启动 没有初始化值,也就是说具有相同的内存。 没有初始化boolean abc=false;等值 看起来像无效退出?

  • 在Libgdx类(第三类)中,我设置了一些值exit=true并退出, 处理所有纹理。程序返回第二个类。

    public void onCreate(android.os.Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      if (Data.exit) finish();
    

第二课程返回主要活动 以同样的方式检查exit

3)接下来有趣的是现在Gdx.graphics.getWidth() 正确获取屏幕尺寸。谜...

4)如果是这样,我重新制作应用程序。 现在主类开始了Libgdx类。 它的工作和退出都很好,但只是在安装或重启后才第一次。 Libgdx onCreate的秒数开始,但render()没有。 首次启动后看起来像无效退出: 主类代码在这里

 public class MyActivity extends AndroidApplication 
      implements IActivityRequestHandler {
  public void onCreate(android.os.Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...
    context.startService(new Intent(context, BillingService.class));
    ....
    // Create the libgdx View
    View gameView = initializeForView(new MyGame(this), false);

    // Create and setup the AdMob view
    adView = new AdView(this, AdSize.BANNER, "aaaaaaa");
  }

@Override
public synchronized void onPause() {
    super.onPause();
}

@Override
public void onStop() {
    super.onStop();
}


@Override
protected void onDestroy() {
    super.onDestroy();
}

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

您正在使用静力学。当您关闭应用程序时,它们会保留其价值,并在Android销毁进程之前再次打开它,因此使用相同的VM。您无法控制Android何时会销毁它,因此请尝试在其类的构造函数/ create方法中初始化这些变量。

而不是:

static boolean abc=false;

使用:

static boolean abc;

public MyClass/create(){
    abc=false;
}

或者除非必要,否则不要使用静态。