Android实现Back功能代码片段总结
作者:mdxy-dxy 时间:2021-05-27 01:33:06
实现Back键功能方法有:
一:重写onBackPressed方法
@Override
public void onBackPressed() {
// do something what you want
super.onBackPressed();
}
二:使用测试框架Instrumentation,模拟任意键按下动作,注意的是该方法不能在主线程中使用,只能开启新线程,带来的问题就是反应速度较慢,项目中不建议使用。
调用onBack()方法;产生back键单击效果
public void onBack(){
new Thread(){
public void run() {
try{
Instrumentation inst = new Instrumentation();
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);
}
catch (Exception e) {
Log.e("Exception when onBack", e.toString());
}
}
}.start();
}
三:此方法是网络上搜集的,没有代码验证。
try{
Runtime runtime=Runtime.getRuntime();
runtime.exec("input keyevent " + KeyEvent.KEYCODE_BACK);
}catch(IOException e){
Log.e("Exception when doBack", e.toString());
}
四:重写dispatchKeyEvent
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
// TODO Auto-generated method stub
if (event.getAction() == KeyEvent.ACTION_DOWN
&& event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
//do something what you want
return true;//返回true,把事件消费掉,不会继续调用onBackPressed
}
return super.dispatchKeyEvent(event);
}
五:这个方法算不上是完全意义的Back键的功能了,此方法只能关闭当前的 Activity ,也就是对于一个只有单个 Activity 的应用程序有效,如果对于有多外 Activity 的应用程序它就无能为力了。
public void exitProgrames(){
android.os.Process.killProcess(android.os.Process.myPid());
}
使用此方法需要追加权限:<uses-permission android:name="android.permission.RESTART_PACKAGES" />
标签:Android,Back
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
C#多线程之线程通讯(AutoResetEvent)
2021-12-26 01:48:55
![](https://img.aspxhome.com/file/2023/9/116639_0s.png)
Maven构建时跳过部分测试的实例
2022-08-30 03:42:50
idea2020.1无法自动加载maven依赖的jar包问题及解决方法
2021-06-13 17:40:36
![](https://img.aspxhome.com/file/2023/6/88506_0s.jpg)
如何使用SpEL表达式实现动态分表查询
2022-01-05 03:09:55
图文并茂讲解RocketMQ消息类别
2023-06-11 07:59:41
![](https://img.aspxhome.com/file/2023/0/63160_0s.png)
java泛型基本知识和通用方法
2023-09-19 12:59:12
Java传入用户名和密码并自动提交表单实现登录到其他系统的实例代码
2023-09-20 00:40:46
Spring Security实现两周内自动登录"记住我"功能
2021-12-15 17:59:22
![](https://img.aspxhome.com/file/2023/3/81963_0s.jpg)
C#实现把彩色图片灰度化代码分享
2022-04-21 18:11:33
Maven如何打入依赖中指定的部分jar包
2023-09-22 02:50:33
理解maven命令package、install、deploy的联系与区别
2022-08-09 05:11:39
![](https://img.aspxhome.com/file/2023/4/116134_0s.png)
通过实例了解java spring使用构造器注入的原因
2022-11-25 03:48:24
OPENCV+JAVA实现人脸识别
2022-03-15 18:31:39
![](https://img.aspxhome.com/file/2023/6/82426_0s.jpg)
基于springboot搭建的web系统架构的方法步骤
2023-11-21 13:33:51
![](https://img.aspxhome.com/file/2023/8/62038_0s.png)
Eclipse+Java+Swing实现学生成绩管理系统的实例代码
2022-12-14 15:35:04
![](https://img.aspxhome.com/file/2023/0/77170_0s.jpg)
SpringBoot日志框架之Log4j2快速入门与参数详解
2023-11-15 21:17:59
![](https://img.aspxhome.com/file/2023/3/61653_0s.webp)
漂亮的Android音乐歌词控件 仿网易云音乐滑动效果
2022-01-26 14:16:25
![](https://img.aspxhome.com/file/2023/2/114292_0s.gif)
c#正反序列化XML文件示例(xml序列化)
2023-01-06 02:49:57
C#中几个未知的Visual Studio编码技巧分享
2022-09-16 04:21:19
![](https://img.aspxhome.com/file/2023/0/126080_0s.png)
java实现文件的断点续传
2023-11-23 09:11:00
![](https://img.aspxhome.com/file/2023/4/59544_0s.jpg)