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
0
投稿

猜你喜欢

  • C#多线程之线程通讯(AutoResetEvent)

    2021-12-26 01:48:55
  • Maven构建时跳过部分测试的实例

    2022-08-30 03:42:50
  • idea2020.1无法自动加载maven依赖的jar包问题及解决方法

    2021-06-13 17:40:36
  • 如何使用SpEL表达式实现动态分表查询

    2022-01-05 03:09:55
  • 图文并茂讲解RocketMQ消息类别

    2023-06-11 07:59:41
  • java泛型基本知识和通用方法

    2023-09-19 12:59:12
  • Java传入用户名和密码并自动提交表单实现登录到其他系统的实例代码

    2023-09-20 00:40:46
  • Spring Security实现两周内自动登录"记住我"功能

    2021-12-15 17:59:22
  • 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
  • 通过实例了解java spring使用构造器注入的原因

    2022-11-25 03:48:24
  • OPENCV+JAVA实现人脸识别

    2022-03-15 18:31:39
  • 基于springboot搭建的web系统架构的方法步骤

    2023-11-21 13:33:51
  • Eclipse+Java+Swing实现学生成绩管理系统的实例代码

    2022-12-14 15:35:04
  • SpringBoot日志框架之Log4j2快速入门与参数详解

    2023-11-15 21:17:59
  • 漂亮的Android音乐歌词控件 仿网易云音乐滑动效果

    2022-01-26 14:16:25
  • c#正反序列化XML文件示例(xml序列化)

    2023-01-06 02:49:57
  • C#中几个未知的Visual Studio编码技巧分享

    2022-09-16 04:21:19
  • java实现文件的断点续传

    2023-11-23 09:11:00
  • asp之家 软件编程 m.aspxhome.com