0

我开发了一个游戏libgdx,我试图在其中使用Intent. 当我单击游戏中的共享按钮时,会显示意图活动。问题是即使我单击后退按钮,活动也会不断弹出。我无法关闭活动并返回我的游戏屏幕。Android 代码如下,

public class MainActivity extends AndroidApplication implements AndroidIntent{
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
        cfg.useGL20 = true;
        cfg.useAccelerometer = true;
        cfg.useCompass = false;

        initialize(new MyGame(this), cfg);
    }

    @Override
    public void share() {
        Log.d("magicwords", "Sharing the game");
        Intent intent = new Intent(Intent.ACTION_SEND); 
        intent.setType("text/plain");
        intent.putExtra(Intent.EXTRA_TEXT, "this is the status line");
        startActivity(Intent.createChooser(intent, "Share using"));

    }
}

AndroidIntent是我的界面有share()

4

1 回答 1

2

我发现了问题。这是由于 touchlistener 造成的。对于单点触控界面,例如选项和菜单,应该使用Gdx.input.justTouched()。如果您需要触摸和拖动功能,请使用Gdx.input.isTouched()。由于我使用了 isTouched(),因此发送了对意图活动的多个调用。在这里发布代码供其他人查找。

    @Override
    public void render(float delta) {

    Gdx.gl.glClearColor(0, 0, 0.0f, 1);
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

    camera.update();

    // coordinate system specified by the camera.
    batch.setProjectionMatrix(camera.combined);
    batch.begin();
    batch.draw(...);
    batch.end();

            //for single touch down
    if(Gdx.input.justTouched())
    {
        processTouch((int)touchPos.x, (int)touchPos.y);
    }

            //for continuous touch(drag)
    if(Gdx.input.isTouched())
    {
        processTouch((int)touchPos.x, (int)touchPos.y);
    }
}
于 2013-05-13T10:38:37.417 回答