怎么在安卓平台通过vue app 返回键退出出游戏

1,修改org/cocos2dx/lib/Cocos2dxGLSurfaceView.java下面
public boolean onKeyDown(final int pKeyCode, final KeyEvent pKeyEvent) {
switch (pKeyCode) {
case KeyEvent.KEYCODE_BACK:
case KeyEvent.KEYCODE_MENU:
this.queueEvent(new Runnable() {
public void run() {
Cocos2dxGLSurfaceView.this.mCocos2dxRenderer.handleKeyDown(pKeyCode);
return super.onKeyDown(pKeyCode, pKeyEvent);
public boolean onKeyDown(final int pKeyCode, final KeyEvent pKeyEvent) {
switch (pKeyCode) {
case KeyEvent.KEYCODE_BACK:
case KeyEvent.KEYCODE_MENU:
this.queueEvent(new Runnable() {
public void run() {
Cocos2dxGLSurfaceView.this.mCocos2dxRenderer.handleKeyDown(pKeyCode);
return super.onKeyDown(pKeyCode, pKeyEvent);
}按键KeyEvent.KEYCODE_BACK被监听了,只要在这里不作处理即可(return false)
2,添加代码
private long exitTime = 0;
public boolean onKeyDown(int keyCode, KeyEvent event){
Log.e(&&&&onKeyDown&, &&&&onKeyDown&);
if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){
if(System.currentTimeMillis() - exitTime & 2000){
Toast.makeText(getApplicationContext(), &再按一次退出程序&, Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
System.exit(0);
return super.onKeyDown(keyCode, event);
本文已收录于以下专栏:
相关文章推荐
首先将cocos2d/cocos/platform/android/src/org/cocos2dx/lib下的Cocos2dxGLSurfaceView.java里的
   public bool...
cocos2dx 3.x版本后退格/删除键已经被
Button * button = Button::create(&cocosui/animationbuttonnormal.png&);
//新建按钮
 Button* button = Bu...
最近在ios版本游戏接入友盟微信分享时遇到分享好友成功后,返回游戏有很大概率游戏会卡死,搜索了很久终于找到一个解决方法,请看链接/blog/2155...
最近一不小心就整天在搞android了。。。。。
然后各种磕磕绊绊的,
上午把项目捕捉到安卓手机的返回键事件给实现了下,具体如下:
安卓手机项目的退出有两种方法:
1.双击返回键退出:
if (key...
如果想要对android 返回键 或者 Menu键 进行事件处理,只需要重写两个函数
          
void keyBackClicked();
void keyMenuClicked()...
最近在做cocos2dx3.2项目给wp8平台上的移植,由于是第一次做,其中遇到了一些不少问题,而项目中对于物理返回键的响应就是一个我解决了较久的问题,之前在网上查资料,这方面的比较少,今天把这个写出...
转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog)
最近在学习的过程中重新整理了一下代码,顺便把cocos2dx从3.0升到了3.2。这里记录一下升级过...
他的最新文章
讲师:王哲涵
讲师:王渊命
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)Android开发教程:游戏过程中按Home键后返回游戏界面_Linux编程_Linux公社-Linux系统门户网站
你好,游客
Android开发教程:游戏过程中按Home键后返回游戏界面
来源:Linux社区&
症状:游戏过程中,按下Home键返回手机主菜单,再点击游戏图标试图返回游戏的时候屏幕黑的一片!
以前一直没在意只有结束线程在运行游戏,今天觉得改仔细琢磨一下这个问题了!
首先第一件事:打印Logo看看按下Home键后会调用哪些方法,结果如下:
游戏过程中按下Home后:
11-29 20:42:07.090: I/System.out(18835): Activity onPause...11-29 20:42:14.190: I/System.out(18835): Activity &onStop...11-29 20:42:14.260: I/System.out(18835): SurfaceView surfaceDestroyed...
可见SurfaceView 在返回手机主菜单的时候被销毁了,而我的SurfaceView 主线程是在构造方法里创建的
那么我们返回游戏的时候会调哪些方法呢?接着看Log:
11-29 20:48:06.940: I/System.out(18835): Activity &onRestart...11-29 20:48:06.950: I/System.out(18835): Activity &onResume...11-29 20:48:07.230: I/System.out(18835): SurfaceView &surfaceCreated...11-29 20:48:07.240: I/System.out(18835): SurfaceView &surfaceChanged...
surfaceDestroyed 的时候线程已经退出了运行,这时再返回到游戏刷屏的线程就没了,任何绘制方法都没调用,所以你看到的只有黑漆漆的屏幕啦!明白了运行原理我们就知道改怎么做啦!
首先创建线程放在&surfaceCreated ,并启动线程,
当&surfaceDestroyed 调用的时候,线程已经无效了,我们把线程对象设为null释放他,
然后不管怎么返回线程都会继续运行你的游戏也就不会中断了,来段简单的代码更具表达力度!
package&com.game.&&
import&.content.C&&
import&android.graphics.C&&
import&android.graphics.P&&
import&android.graphics.Paint.S&&
import&android.graphics.R&&
import&android.view.SurfaceH&&
import&android.view.SurfaceHolder.C&&
import&android.view.SurfaceV&&
public&class&TestView&extends&SurfaceView&implements&Callback,&Runnable{&&
&&&&public&static&final&int&GAME_HEART&=&<FONT color=#c/30;&&&&&
&&&&public&static&int&screenW,&screenH;&&
&&&&private&Thread&&&
&&&&private&SurfaceHolder&&&
&&&&private&Paint&&&
&&&&public&TestView(Context&context)&{&&
&&&&&&&&super(context);&&
&&&&&&&&&&
&&&&&&&&holder&=&getHolder();&&
&&&&&&&&holder.addCallback(this);&&
&&&&&&&&&&
&&&&&&&&paint&=&new&Paint(Paint.ANTI_ALIAS_FLAG);&&
&&&&&&&&paint.setStyle(Style.FILL);&&&
&&&&&&&&paint.setTextSize(16);&&&
&&&&private&void&update()&{&&
&&&&&&&&&&
&&&&private&Rect&rect&=&new&Rect();&&
&&&&private&void&draw(){&&
&&&&&&&&Canvas&canvas&=&holder.lockCanvas();&&
&&&&&&&&&&
&&&&&&&&String&text&=&"天使之翼的示例Demo";&&
&&&&&&&&&&
&&&&&&&&paint.getTextBounds(text,&0,&text.length(),&rect);&&
&&&&&&&&&&
&&&&&&&&paint.setColor(0xfff000f0);&&&
&&&&&&&&canvas.drawText(text,&&&
&&&&&&&&&&&&&&&&(screenW&-&rect.width())/2,&&&
&&&&&&&&&&&&&&&&screenH/2&+&rect.height()/2,&&&
&&&&&&&&&&&&&&&&paint);&&
&&&&&&&&&&
&&&&&&&&holder.unlockCanvasAndPost(canvas);&&
&&&&@Override&&
&&&&public&void&surfaceCreated(SurfaceHolder&holder)&{&&
&&&&&&&&&&
&&&&&&&&screenW&=&getWidth();&&
&&&&&&&&screenH&=&getHeight();&&
&&&&&&&&&&
&&&&&&&&thread&=&new&Thread(this);&&
&&&&&&&&isRun&=&true;&&
&&&&&&&&thread.start();&&
&&&&@Override&&
&&&&public&void&surfaceChanged(SurfaceHolder&holder,&int&format,&int&width,&int&height)&{&&
&&&&&&&&&&
&&&&&&&&&&
&&&&&&&&screenW&=&getWidth();&&
&&&&&&&&screenH&=&getHeight();&&
&&&&@Override&&
&&&&public&void&surfaceDestroyed(SurfaceHolder&holder)&{&&
&&&&&&&&&&
&&&&&&&&isRun&=&false;&&
&&&&&&&&thread&=&null;&&
&&&&private&boolean&isR&&&&
&&&&private&int&useT&&&&&&
&&&&@Override&&
&&&&public&void&run()&{&&
&&&&&&&&&&
&&&&&&&&long&start,&&&
&&&&&&&&&&
&&&&&&&&while(isRun){&&
&&&&&&&&&&&&start&=&System.currentTimeMillis();&&
&&&&&&&&&&&&update();&&&
&&&&&&&&&&&&draw();&&&
&&&&&&&&&&&&end&=&System.currentTimeMillis();&&
&&&&&&&&&&&&useTime&=&(int)&(end&-&start);&&
&&&&&&&&&&&&&&
&&&&&&&&&&&&if(useTime&&&GAME_HEART){&&&&&&
&&&&&&&&&&&&&&&&try&{&&
&&&&&&&&&&&&&&&&&&&&Thread.sleep(GAME_HEART&-&useTime);&&
&&&&&&&&&&&&&&&&}&catch&(InterruptedException&e)&{&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&e.printStackTrace();&&
&&&&&&&&&&&&&&&&}&&
&&&&&&&&&&&&}&&
&&&&&&&&}&&
相关资讯 & & &
& (03/23/:55)
& (02/28/:41)
& (02/17/:44)
& (03/02/:00)
& (02/17/:45)
& (02/17/:52)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款后使用快捷导航没有帐号?
平板/笔记本
云服务专区
对于安卓游戏不能用返回键退出大家怎么看
&登堂入室&
来自:浏览器
撸主目前在一家游戏公司当运营专员,发现公司的几款产品都存在这个问题——不能用返回键退出。而且主界面上也找不到退出的交互按键。有些观点是如果设置返回键退出的话,用户在操作的时候可能误按返回键出现退出提示时,会照常退出的心理暗示,会提高用户流失率。想问问粉粉们,大家对与一款安卓游戏应用,不能用返回键退出怎么看。
可以直接回复以下数字:
1.无所谓,不影响使用
2.不能忍,发现后马上卸载
3.会觉得适应,但还会继续使用
4.我一直都是用home退出应用的,不习惯返回键
一日花粉,终生花粉!
width:100%">
&炉火纯青&
来自:浏览器
这是用户调查?不设置返回绝对是故意的,什么理由都是胡扯。这样绑架用户不考虑体验的做法,就国产游戏做的出。经历过,必卸
width:100%">
&登堂入室&
来自:浏览器
不考虑用户高手的注定要淘汰,得民心者得天下
width:100%">
把【秋】做成标本随拍:生活的‘远方’夕照上阳宫秋色白桦林再次邂逅坝上公主湖,依然惊艳!
花粉客户端
Make it Possible
Make your device special
华为云服务
Huawei cloud services
音乐播放器
Huawei Music
Huawei Vmall
没有最新动态
关注花粉俱乐部
举报邮箱:
|关注花粉俱乐部:
Copyright (C)
华为软件技术有限公司 版权所有 保留一切权利用户名:jiyue
访问量:7248
注册日期:
阅读量:1297
阅读量:3317
阅读量:461271
阅读量:1145705
51CTO推荐博文
最近公司使用android打包html5游戏,使用android点webview打包html5游戏,代码都好了,具体如下public&class&MainActivity&extends&ActionBarActivity&{&&&&@Override&&&&protected&void&onCreate(Bundle&savedInstanceState)&{&&&&&&&&super.onCreate(savedInstanceState);
&&&&&&&&&WebView&webView=new&WebView(this);
&&&&&&&&webView.getSettings().setJavaScriptEnabled(true);//支持js&&&&&&&&webView.loadUrl("http://www.ysmall.cc/mobile");
&&&&&&&&webView.setWebViewClient(new&MyWebViewClient());
&&&&}&&&&@Override&&&&public&boolean&onCreateOptionsMenu(Menu&menu)&{&&&&&&&&//&Inflate&the&&this&adds&items&to&the&action&bar&if&it&is&present.&&&&&&&&getMenuInflater().inflate(R.menu.menu_main,&menu);&&&&&&&&return&
&&&&}&&&&@Override&&&&public&boolean&onOptionsItemSelected(MenuItem&item)&{&&&&&&&&//&Handle&action&bar&item&clicks&here.&The&action&bar&will&&&&&&&&//&automatically&handle&clicks&on&the&Home/Up&button,&so&long&&&&&&&&//&as&you&specify&a&parent&activity&in&AndroidManifest.xml.&&&&&&&&int&id&=&item.getItemId();&&&&&&&&//noinspection&SimplifiableIfStatement&&&&&&&&if&(id&==&R.id.action_settings)&{&&&&&&&&&&&&return&
&&&&&&&&}&&&&&&&&return&super.onOptionsItemSelected(item);
}一切貌似很完美,玩游戏,被电脑打败了(我真菜!!!),游戏提示失败,点击“更多游戏”去查看其他游戏,点进去后,然后点返回键,问题来了,不是挖掘技术哪家强,是webview没有后退功能,没法退回首页,而是直接退出,android开发问题还真多啊,还好哥机灵,找资料呗!终于找到问题了,只需要重写activity的onKeyDown方法,在onKeyDown里后退即可public boolean onKeyDown(int keyCode ,KeyEvent keyEvent){if(keyCode==keyEvent.KEYCODE_BACK){//监听返回键,如果可以后退就后退if(webView.canGoBack()){webView.goBack();}}return super.onKeyDown(keyCode, keyEvent);}全部代码贴出,免得以后忘记import android.app.Aimport android.os.Bimport android.view.KeyEimport android.view.Mimport android.webkit.WebSimport android.webkit.WebVimport android.webkit.WebViewCpublic class MainActivity extends Activity {private WebView webV@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);init();}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// I this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);}private void init() {webView = new WebView(this);& webView.loadUrl("/");& WebSettings settings = webView.getSettings();& settings.setJavaScriptEnabled(true);& webView.setWebViewClient(new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {&&view.loadUrl(url);}});setContentView(webView);}&public boolean onKeyDown(int keyCode ,KeyEvent keyEvent){if(keyCode==keyEvent.KEYCODE_BACK){if(webView.canGoBack()){webView.goBack();}}return super.onKeyDown(keyCode, keyEvent);}}bingo与君共勉~本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)

我要回帖

更多关于 微信h5点击返回键退出 的文章

 

随机推荐