展会信息港展会大全

android中的回调举例:在surfaceview中结束宿主activity
来源:互联网   发布日期:2015-10-03 15:19:18   浏览:1678次  

导读:背景SurfaceView是游戏开发中经常使用到的View,能够实时的更新UI界面,实现游戏逻辑。在这里的讨论中,我设定了一个GameActivity , 在这个activity的布局...

背景

SurfaceView是游戏开发中经常使用到的View,能够实时的更新UI界面,实现游戏逻辑。在这里的讨论中,我设定了一个GameActivity , 在这个activity的布局中,放置了一个全屏的GameSurfaceView。GameActivity虽然是游戏的主体,但游戏的逻辑和显示都是由GameSurfaceView负责。游戏开始后,GameSurfaceView在新开的线程中运行,并即时的更新游戏界面。

当游戏逻辑结束时,需要结束掉activity,以使得activity stack顺序清晰。特别是在2.2系统下,不能一次性关闭app,只能每次都关闭掉各个acticity。

实现

如何在GameSurfaceView中结束掉这个activity呢?

增加回调接口,在GameSurfaceView中实现回调!

关于回调的介绍: callback。

1,设定一个回调接口

public interface OnEndOfGameInterface {

public void onEndOfGame();

}

在GameActivity中实现这个接口。

public class GameActivity extends Activity implements OnEndOfGameInterface{

//....

@Override

public void onEndOfGame() {

this.finish();

}

}

在GameSurfaceView中定义回调类型的成员。 并定义一个public method 用来设置回调成员为GameActivity。

protected OnEndOfGameInterface mOnEndOfGame ; //callback interface

public void setOnEndOfGame(OnEndOfGameInterface xOnEndOfGame){

mOnEndOfGame = xOnEndOfGame;

}

GameActivity中,开启GameSurfaceView的同时,必须调用setOnEndOfGame方法,设定好回调。

view plain

mGameSurfaceView = (ReverseGameSurfaceView) findViewById(R.id.reverse_game_surface_view);

mGameSurfaceView.setOnEndOfGame(this);//传入this,设定自己为回调目标

mGameSurfaceView.setMode(GameBasicSurfaceView.RUNNING);

如此,当GameSurfaceView结束时,就可以调用onEndOfGame方法,实现回调了!

摘自:BIAOBIAOqi的小巢

赞助本站

人工智能实验室

相关热词: android开发 教程

相关内容
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港