0

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

我遇到了一些奇怪的问题

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 类。它可以正常工作并退出,但仅在安装或重新启动后的第一次。LibgdxonCreate启动的秒数,但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();
}

有任何想法吗?谢谢!!

4

1 回答 1

0

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

代替:

static boolean abc=false;

利用:

static boolean abc;

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

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

于 2013-06-19T02:53:54.910 回答