无法解除libgdx中的意图活动

时间:2013-05-13 09:57:25

标签: android android-intent libgdx

我在libgdx开发了一款游戏,我尝试使用Intent分享文字内容。当我点击游戏中的分享按钮时,会显示目标活动。问题是,即使我点击后退按钮,活动也会不断弹出。我无法解雇该活动并返回我的游戏屏幕。安卓代码如下,

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()

1 个答案:

答案 0 :(得分:2)

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

    @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);
    }
}