Unity响应Android的返回键,退出当前Activity
一:使用 Application.Quit()
public void Update() {
if(Input.GetKeyDown(KeyCode.Escape))
Application.Quit();
}
如此,Unity 就能响应 Android 的 Back 按钮了。
但是!这个方法存在的问题是,退出当前 UnityPlayerActivity 的同时,会退出整个程序。因此对于想返回上一个 Activity 并不有效。
二:添加一个后退的 button 执行 mUnityPlayer.quit()
在 UnityPlayerActivity 类,存在 mUnityPlayer.quit() 方法,通过退出 unityplayer 来结束 UnityPlayerActivity。 于是就考虑在安卓端设置一个后退按钮如图:
设置该按钮的监听并执行 mUnityPlayer.quit():
bckbtn = (Button) findViewById(R.id.navigate_back);
bckbtn.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View v) {
mUnityPlayer.quit();
}
});
这样就能退出当前的 UnityPlayerActivity 并返回前一个 Activity 。
三:使用 Unity 调用 Android 响应 Back 按钮
在此,首先在 Unity 的 C# 脚本中添加如下代码响应 Back 按钮:
if (Input.GetKeyUp (KeyCode.Escape)) {
AndroidJavaClass jc = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject> ("currentActivity");
jo.Call ("onBackPressed");
}
在此先得到 AndroidJavaClass ,然后得到 AndroidjavaObject 就是当前 UnityPlayerActivity 的对象,拿到它的对象后调用jo.Call()参数表示调用 UnityPlayerActivity 类中的方法名称。
于是在 UnityPlayerActivity 下实现上面的 onBackPressed() 方法,并在该方法中实现 mUnityPlayer.quit(),那么问题就搞定了,Android 端 java 代码如下:
@Override
public void onBackPressed() {
runOnUiThread(new Runnable() {
@Override
public void run() {
mUnityPlayer.quit();
}
});
super.onBackPressed();
}
这里重写了系统的 onBackPressed() 函数。
就此,最终实现了 Unity 响应手机的系统返回键,成功返回上一级 Activity。
Unity响应Android的返回键,退出当前Activity的更多相关文章
- Android双击返回键退出Activity的两种方法
在开发应用程序的时候,有一种功能是非常常用到的,那就是迅速双击返回按钮,然后实现退出Activity的功能.本人在网上看了很多资料代码,总结起来,主要有两种比较好的方式.一种是开线程延时执行,一种是记 ...
- Android监听返回键、Home键+再按一次返回键退出应用
Android监听返回键需重写onKeyDown()方法 Home键keyCode==KeyEvent.KEYCODE_HOME @Override public boolean onKeyDown( ...
- Android 应用按两下返回键退出应用程序
在android应用开发中,有时候应用会用到按两下返回键退出应用的功能,今天介绍一下这个功能,直接上代码: @Override public boolean dispatchKeyEvent(KeyE ...
- 关于android app两次点击返回键退出的处理
现在的android app在开发时,引入了两次点击返回键退出app的设计 为了避免用户误触,这个设计很人性化 中文网上社区有些同学贴了一些实现的例子,我觉得不是很好 代码如下 public bool ...
- React Native 适配Android物理返回键,实现连续两次点击退出
一直使用iPhone作为测试机开发,提交给测试同事Android版本后发现很多适配问题,其中一个非常明显的是,弹出一个modal后,点击Android的返回键,modal不会消失,直接navigati ...
- android双击返回键退出程序
今天给大家简单说一下,android双击返回键退出程序. @Override public boolean onKeyDown(int keyCode, KeyEvent event) { ...
- ionic中android的返回键
ionic中android的返回键 在ionic框架中已经注册了几个返回事件,分别是 view sideMenu modal actionSheet popup loading 他们的优先级分别是 v ...
- ionic 实现双击返回键退出应用功能
ionic 实现双击返回键退出应用功能 keywords cordova,ngcordova,phonegap,ionic,双击,返回键,退出 例子 准备Toast插件,提示用,用户体验好点,不是必须 ...
- 点击返回键退出popupwindow的方法
点击返回键退出popupwindow mPopupWindow.setFocusable(true); 这句非常重要,对背景不会有影响 mPopupWindow.setBackgroundDrawab ...
随机推荐
- matlab注释
单行注释: 两个'%': 多行注释: A. %{ 若干语句 %} B. 注释: 选中要注释的若干语句, 编辑器菜单Text->Comment, 或者快捷键Ctrl+R 取消注释: 选中要取消注释 ...
- 记录s标签范例
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- 国内GIT托管服务
http://www.cnblogs.com/TianFang/p/3348949.html
- RHEL-界面中文乱码问题
一.虚拟机里的rhel更换为中文简体后,中文字符变为小方块 二.解决方法: 安装中文支持的软件包 fonts-chinese-3.02-12.el5.noarch.rpm fonts-ISO8859- ...
- RHEL提示RHN没有注册问题的解决方法
1.系统RHEL5.5,初次使用yum时出现以下问题: [root@localhost real]# yum update Loaded plugins: rhnplugin, security Th ...
- How to convert any valid date string to a DateTime.
DateTimeFormatInfo pattern = new DateTimeFormatInfo() { ShortDatePattern = "your date pattern&q ...
- Semantic ui 学习笔记 持续更新
这个semantic 更新版本好快~ 首先是代码的标识<code></code> 具体样式就是红框这样的 圈起来代码感觉不错 不过要在semantic.css里在加上如下样式~ ...
- Python之路【第五篇】:面向对象编程
面向对象编程思维导向图
- [C#]通用守护进程服务
摘要 很多情况下,都会使用windows服务做一些任务,但总会有一些异常,导致服务停止.这个时候,开发人员又不能立马解决问题,所以做一个守护者服务还是很有必要的.当检测到服务停止了,重启一下服务,等开 ...
- [Js/Jquery]Jquery tagsinput在h5邮件客户端中应用
摘要 最近一直在折腾邮件的h5应用,为了保证在pc,ios,android端都可以使用,所以使用H5页面的方式嵌入app的webview中. 页面 UI大概是这样的 Jquery tagsinput下 ...