当前位置: 首页 > news >正文

查询域名是否做过网站南宁网站建设q.479185700強

查询域名是否做过网站,南宁网站建设q.479185700強,网站建设设计书,桂林北站到阳朔文章目录 1、应用层分析1.1 BACK键功能实现 1.2 HOME键功能实现 1.3 BACK键与HOME键的区别 2、系统层分析2.1 BACK键的处理2.2 HOME键的处理2.3 代码分析BACK键HOME键BACK键的系统代码分析HOME键的系统代码分析BACK键HOME键 3、优缺点分析3.1 BACK键3.2 HOME键 4、项目中的使用… 文章目录 1、应用层分析1.1 BACK键功能实现 1.2 HOME键功能实现 1.3 BACK键与HOME键的区别 2、系统层分析2.1 BACK键的处理2.2 HOME键的处理2.3 代码分析BACK键HOME键BACK键的系统代码分析HOME键的系统代码分析BACK键HOME键 3、优缺点分析3.1 BACK键3.2 HOME键 4、项目中的使用情况5、结论 1、应用层分析 在Android设备上BACK键和HOME键是两个常见的导航按钮它们的功能和行为有所不同。理解这两个键的区别有助于开发人员更好地设计应用程序的用户体验。 1.1 BACK键 功能 BACK键主要用于导航到之前的屏幕或退出当前活动Activity。具体功能包括 导航回退返回到上一个Activity或Fragment。例如如果用户在Activity A中启动了Activity B按下BACK键会从Activity B返回到Activity A。退出应用当用户在应用的主Activity按下BACK键如果没有其他Activity在任务栈中则退出应用。关闭对话框如果有对话框或弹窗显示按下BACK键会关闭对话框而不是Activity。清除焦点在一些情况下按下BACK键可以清除文本框的焦点或隐藏软键盘。 实现 应用程序可以通过重写onBackPressed()方法来自定义BACK键的行为 Override public void onBackPressed() {// Custom behaviorif (shouldShowExitConfirmation()) {showExitConfirmationDialog();} else {super.onBackPressed(); // Default behavior} }1.2 HOME键 功能 HOME键用于返回设备的主屏幕。它的行为特点包括 返回主屏幕无论当前应用处于哪个Activity按下HOME键都会将用户带到设备的主屏幕。最小化应用按下HOME键不会关闭应用而是将其最小化到后台。应用程序的状态会被保存以便用户返回时能够恢复。切换应用HOME键通常与任务切换器Recents结合使用用户可以通过任务切换器在最近的应用程序之间切换。 实现 开发者无法直接拦截或重写HOME键的行为这是为了保证用户能够随时返回主屏幕维护一致的用户体验。 1.3 BACK键与HOME键的区别 导航目的 BACK键用于导航回退关闭对话框或弹窗退出当前应用的Activity。HOME键用于返回设备的主屏幕将应用程序最小化到后台。 可自定义性 BACK键开发者可以重写onBackPressed()方法来自定义BACK键的行为。HOME键开发者不能拦截或重写HOME键的行为。 应用生命周期影响 BACK键可能导致Activity的销毁调用onDestroy()如果这是任务栈中的最后一个Activity还会导致应用退出。HOME键不会销毁Activity只会暂停调用onPause()和onStop()应用保持在后台运行。 用户体验 BACK键用于细粒度的导航操作符合用户逐步返回或退出的期望。HOME键提供快速返回主屏幕的功能使用户能够快速切换应用。 2、系统层分析 在Android系统中BACK键和HOME键的处理逻辑有所不同。这可以通过分析Android系统的代码来了解它们的具体实现及其差异。 2.1 BACK键的处理 BACK键的处理主要涉及到Activity的生命周期管理和输入事件的处理。以下是BACK键处理流程的简要分析 捕获按键事件 当用户按下BACK键时系统会捕获到KeyEvent.KEYCODE_BACK事件。 分发按键事件 按键事件通过PhoneWindow类的dispatchKeyEvent方法分发到当前的Activity。 Activity的onKeyDown方法 如果Activity没有处理该事件则系统会调用Activity的onKeyDown方法。 Activity的onBackPressed方法 如果按下的是BACK键默认情况下Activity会调用onBackPressed方法。开发者可以通过重写这个方法来自定义BACK键的行为。 Activity的栈管理 onBackPressed方法调用finish()方法导致Activity被销毁回到上一个Activity。如果当前Activity是任务栈中的最后一个Activity则整个应用退出。 Override public boolean dispatchKeyEvent(KeyEvent event) {if (event.getKeyCode() KeyEvent.KEYCODE_BACK event.getAction() KeyEvent.ACTION_UP) {onBackPressed();return true;}return super.dispatchKeyEvent(event); }Override public void onBackPressed() {if (!getFragmentManager().popBackStackImmediate()) {super.onBackPressed();} }2.2 HOME键的处理 HOME键的处理逻辑相对复杂它涉及到系统的全局事件处理器和应用任务管理。以下是HOME键处理流程的简要分析 捕获按键事件 当用户按下HOME键时系统会捕获到KeyEvent.KEYCODE_HOME事件。 系统级别处理 HOME键事件由系统的WindowManagerService来处理而不是通过应用层的Activity处理。这是为了确保HOME键的行为一致且不可拦截。 切换到主屏幕 WindowManagerService处理HOME键事件时会调用ActivityManagerService来切换到主屏幕。具体实现通过startHomeActivityLocked方法。 暂停当前应用 当前运行的应用会被暂停进入后台状态。系统调用Activity的onPause和onStop方法来保存应用状态但不会销毁Activity。 // WindowManagerService.java Override public void interceptKeyBeforeDispatching(InputWindowHandle focus, KeyEvent event, int policyFlags) {final int keyCode event.getKeyCode();if (keyCode KeyEvent.KEYCODE_HOME) {handleHomeKey();} }private void handleHomeKey() {final Intent homeIntent new Intent(Intent.ACTION_MAIN);homeIntent.addCategory(Intent.CATEGORY_HOME);homeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);mContext.startActivity(homeIntent); }2.3 代码分析 BACK键 事件捕获与分发BACK键事件通过PhoneWindow类分发到当前Activity调用onKeyDown方法。自定义处理开发者可以重写onBackPressed方法自定义BACK键行为。Activity栈管理调用finish()方法Activity被销毁返回上一个Activity。 HOME键 系统级处理HOME键事件由WindowManagerService处理确保行为一致且不可拦截。启动主屏幕系统通过ActivityManagerService启动主屏幕Activity。后台处理当前应用被暂停但不会销毁Activity保存应用状态。 BACK键的系统代码分析 按键事件的捕获和分发 当用户按下BACK键时系统生成一个KeyEvent对象并通过输入系统将其分发给当前前台窗口。 PhoneWindow类的事件分发 PhoneWindow类是Activity的窗口实现它接收到按键事件后调用其superDispatchKeyEvent方法。 public boolean superDispatchKeyEvent(KeyEvent event) {return mDecor.superDispatchKeyEvent(event); }DecorView类的处理 DecorView是Activity窗口的根视图它重写了superDispatchKeyEvent方法并在其中调用ViewGroup的dispatchKeyEvent方法。 public boolean superDispatchKeyEvent(KeyEvent event) {return super.dispatchKeyEvent(event); }Activity类的处理 Activity类重写了dispatchKeyEvent方法并在其中处理BACK键事件。如果按下的是BACK键则调用onBackPressed方法。 Override public boolean dispatchKeyEvent(KeyEvent event) {if (event.getKeyCode() KeyEvent.KEYCODE_BACK event.getAction() KeyEvent.ACTION_UP) {onBackPressed();return true;}return super.dispatchKeyEvent(event); }onBackPressed方法的自定义 开发者可以重写onBackPressed方法来自定义BACK键的行为。默认实现会调用finish()方法销毁当前Activity。 Override public void onBackPressed() {if (!getFragmentManager().popBackStackImmediate()) {super.onBackPressed();} }HOME键的系统代码分析 按键事件的捕获 当用户按下HOME键时系统生成一个KeyEvent对象并通过输入系统将其分发到WindowManagerService。 WindowManagerService类的处理 WindowManagerService接收到HOME键事件后调用其interceptKeyBeforeDispatching方法。 Override public int interceptKeyBeforeDispatching(InputWindowHandle focus, KeyEvent event, int policyFlags) {final int keyCode event.getKeyCode();if (keyCode KeyEvent.KEYCODE_HOME) {handleHomeKey();return 0;}return super.interceptKeyBeforeDispatching(focus, event, policyFlags); }启动主屏幕 在handleHomeKey方法中WindowManagerService通过ActivityManagerService启动主屏幕。 private void handleHomeKey() {final Intent homeIntent new Intent(Intent.ACTION_MAIN);homeIntent.addCategory(Intent.CATEGORY_HOME);homeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);mContext.startActivity(homeIntent); }应用进入后台 当前运行的应用进入后台系统调用当前Activity的onPause和onStop方法保存应用状态但不会销毁Activity。 BACK键 触发方式通过按键事件的分发和处理最终调用Activity的onBackPressed方法。自定义性开发者可以重写onBackPressed方法灵活定制BACK键的行为。生命周期管理通常会导致Activity的销毁调用finish()并且可能会退出应用。 HOME键 触发方式由WindowManagerService处理系统级别的事件不通过应用层分发。不可拦截性HOME键行为不可被应用层拦截或修改保证系统导航的一致性。后台处理将当前应用置于后台调用onPause和onStop方法不销毁Activity。 3、优缺点分析 3.1 BACK键 优点 灵活性开发者可以定制BACK键行为满足各种导航需求。用户预期符合用户在应用内逐步返回或退出的预期。 缺点 不当处理风险不正确地重写onBackPressed方法可能导致不一致的导航行为或应用崩溃。 3.2 HOME键 优点 一致性HOME键行为统一不可拦截保证了用户体验的一致性。快速切换提供便捷的方式切换到主屏幕和其他应用。 缺点 不可定制开发者无法定制HOME键行为限制了一些特殊应用场景的需求。 4、项目中的使用情况 使用频率 BACK键在绝大多数应用中都会处理BACK键以定制用户的导航体验。HOME键HOME键处理为系统级行为开发者通常不需要直接处理HOME键。 典型场景 BACK键用于应用内的导航控制例如表单填写返回上一页、关闭弹窗等。HOME键用户在任何应用中按下HOME键返回主屏幕例如中断当前操作回到主屏幕。 5、结论 通过系统代码分析BACK键和HOME键在处理流程和目的上有显著差异。BACK键主要用于应用内的导航和退出而HOME键用于系统级的应用切换和返回主屏幕。理解这些差异有助于开发人员设计更好的用户体验并处理不同的按键行为。 欢迎点赞|关注|收藏|评论您的肯定是我创作的动力
http://www.pierceye.com/news/630/

相关文章:

  • 建站广告赚钱新开传奇网站超变
  • 如何让网站自适应屏幕怎么搭建小程序平台
  • 网站建设的费用报价wordpress主题函数
  • 建设局网站新闻网页培训
  • 人工智能网站建设免费网络连接软件
  • 微营销是什么意思seo网站案例
  • 前端网站开发总结cc wordpress
  • 直播网站建设重庆沧州建设局网站
  • 企业在网站建设后期需要做什么洛阳霞光做网站
  • 重庆市建设工程安全网站深圳餐饮网站建设
  • 海南旅游网站建设方式p2p网站开发的流程图
  • 南平建设网站wordpress手机端和pc端兼容
  • 做本地的门户网站代刷网站开发
  • 个人成立公司怎么做企业网站做网站备案 空间是什么意思
  • 那个公司做的网站详情页好看网站营销费用
  • 电白建设局网站网站建设的一些名词
  • 如何建立公司企业网站中国风网站怎么配色
  • 上海网站制作上海网站制作平面设计软件网站
  • 中国建设信用卡积分兑换网站网站建设百科
  • 公司做百度网站要多少钱wordpress 端口
  • 合肥做网站工作室微信开放平台登录入口
  • 南宁seo网站建设费用wordpress全站美化
  • 做网站在图片里加文字地方型旅游网站
  • 建设银行遵义分行网站网易企业邮箱登入入口
  • 淘宝网站是谁做的印尼请人做网站
  • 园林景观设计公司做抖音推广措施seo社区
  • 网站定时数据切换怎么做的互联网创业就是做网站吗
  • 网站关键词百度指数wordpress移动广告不显示不出来
  • 怎么把自己做的网站挂到外网上住房和城乡建设部网站投诉电话
  • 制作网站软件下载wordpress演示