Android 如何避免在关闭间隙广告时加载屏幕(使用AssetManager-Libgdx)

Android 如何避免在关闭间隙广告时加载屏幕(使用AssetManager-Libgdx),android,libgdx,ads,Android,Libgdx,Ads,我正在用libgdx开发一个游戏。资源由AssetManager管理 如中所示,需要重新加载托管的OpenGL资源,如纹理 因此,在我的ApplicationListener#resume()方法中,我切换到加载屏幕并再次调用AssetManager#update() 现在我在做一些广告 我的问题是,如果我显示一个间隙广告。当这个广告关闭,我返回游戏,加载屏幕再次出现,需要一些时间,这是恼人的 (我已经按照以下指南将广告集成到我的Libgdx Android代码中:) 有什么想法吗?谢谢 这是我

我正在用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
}