Android 如何避免在关闭间隙广告时加载屏幕(使用AssetManager-Libgdx)
我正在用libgdx开发一个游戏。资源由AssetManager管理 如中所示,需要重新加载托管的OpenGL资源,如纹理 因此,在我的ApplicationListener#resume()方法中,我切换到加载屏幕并再次调用AssetManager#update() 现在我在做一些广告 我的问题是,如果我显示一个间隙广告。当这个广告关闭,我返回游戏,加载屏幕再次出现,需要一些时间,这是恼人的 (我已经按照以下指南将广告集成到我的Libgdx Android代码中:) 有什么想法吗?谢谢 这是我的代码:Android 如何避免在关闭间隙广告时加载屏幕(使用AssetManager-Libgdx),android,libgdx,ads,Android,Libgdx,Ads,我正在用libgdx开发一个游戏。资源由AssetManager管理 如中所示,需要重新加载托管的OpenGL资源,如纹理 因此,在我的ApplicationListener#resume()方法中,我切换到加载屏幕并再次调用AssetManager#update() 现在我在做一些广告 我的问题是,如果我显示一个间隙广告。当这个广告关闭,我返回游戏,加载屏幕再次出现,需要一些时间,这是恼人的 (我已经按照以下指南将广告集成到我的Libgdx Android代码中:) 有什么想法吗?谢谢 这是我
public class MyGame extends Game implements InputProcessor {
public Assets assets;
public SpriteBatch sb;
public Screen ScrSplash;
public Screen ScrLoading;
public Screen ScrMainMenu;
public IActivityRequestHandler myRequestHandler;
public GamPrincipal(IActivityRequestHandler handler) {
myRequestHandler = handler;
}
@Override
public void create() {
sb = new SpriteBatch();
ScrSplash = new ScrSplash(this, sb);
ScrLoading = new ScrLoading(this, sb);
ScrMainMenu = new ScrMainMenu (this, sb);
assets = new Assets();
setScreen(ScrSplash);
}
//====
public class ScrMyScreen implements Screen, InputProcessor{
private MyGame game;
private OrthographicCamera camara;
private SpriteBatch sb;
private Sprite sprBackground;
//…more…//
public ScrMyScreen(MyGame game, SpriteBatch sb) {
this.game = game;
this.sb = sb;
}
@Override
public void render(float delta) {
sb.begin();
sprBackground.draw(sb);
///
//…more…//
sb.end();
}
@Override
public void resize(int width, int height) {
}
@Override
public void show() {
sprFondo = game.assets.sprBackground;
sprLblTitle = game.assets.sprTitle;
//…more…//
//**************Show Ads*******************
game.myRequestHandler.showAds(true);
}
@Override
public void hide() {
dispose();
}
@Override
public void pause() {
}
@Override
public void resume() {
//Show loading screen
game.setScreen(game.ScrLoading);
}
@Override
public void dispose() {
//Call Dispose assets method
}
//===
如果您使用的是AssetManager,则不必重新加载资产。它会自动把它们藏起来。所以只需删除简历中的那一行。我删除了那一行。现在,在广告结束后的一瞬间(约1秒)会出现一个黑屏。横幅广告和广告墙都会出现这种情况。与间隙广告不发生。我不知道为什么。但现在它不烦人了。谢谢
public class ScrLoading implements Screen {
private MyGame game;
private Sprite sprBG;
private OrthographicCamera camera;
private SpriteBatch sb;
//…
public ScrLoading(GamPrincipal juego, SpriteBatch sb) {
this.game = game;
this.sb = sb;
}
@Override
public void render(float delta) {
if(Recursos.manager.update()) {
game.setScreen(game. ScrMyScreen);
}
sb.begin();
sprBG.draw(sb);
//…more… (draw text : “loading…” )
//
sb.end();
}
@Override
public void resize(int width, int height) {
}
@Override
public void show() {
texture = new Texture("data/images/bg.png");
sprBG = new Sprite (texture);
Assets.manager.update();
}
@Override
public void hide() {
dispose();
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void dispose() {
//Call Dispose assets method
}