我在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()
。
答案 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);
}
}