Android NDK:如何在没有java的情况下重写NativeActivity中的onBackPressed?

2024-03-09

我的应用程序完全使用 C/C++ 编写NativeActivity,它没有 Java 代码(基于“native-activity”NDK 示例)。按“后退”按钮将其关闭(破坏活动),但我需要此按钮的其他行为,因为我有自己的 UI 和菜单,它们通过 OpenGL 显示。

当我读到时 https://stackoverflow.com/questions/8501732/does-android-application-development-guideline-allow-disabling-default-menu-and,为了改变“后退”按钮的行为,我需要覆盖onBackPressed()Java活动类的方法。但我不使用Java,我可以从C/C++访问这个方法来重写它吗?

如果没有,是否有另一种方法可以使用 NDK 处理“后退”按钮,没有java代码?


已解决:为了防止默认的“后退”按钮行为,在处理按键事件时返回 1 就足够了:

int32_t app_handle_event(struct android_app* app, AInputEvent* event) {
    if (AKeyEvent_getKeyCode(event) == AKEYCODE_BACK) {
        // actions on back key
        return 1; // <-- prevent default handler
    };
    // ...
    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android NDK:如何在没有java的情况下重写NativeActivity中的onBackPressed? 的相关文章

  • 找不到参数的方法 dependencyResolutionManagement()

    我正在尝试使用老师给我的一个项目 但它显示了一个错误 Settings file Users admin AndroidStudioProjects HTTPNetworking settings gradle line 1 A probl
  • 如何清除所有WebView存储的信息?

    我有一个 Android 浏览器 我可以选择清除缓存 存储 cookie 等 代码如下所示 webView clearCache true webView clearFormData webView clearHistory webView
  • 如何快速自动发送FCM或APNS消息?

    我正在开发一项后端服务 通过 FCM 或 APNS 向移动应用程序发送推送通知 我想创建一个可以在一分钟内运行的自动化测试 并验证服务器是否可以成功发送通知 请注意 我不一定需要检查通知是否已送达 只需检查 FCM 或 APNS 是否已成功
  • 使用workmanager时Firestore脱机持久性错误

    我正在使用一个WorkManger定期从我的中检索信息Firestore当应用程序处于后台和前台时的数据库 此信息用于根据状态更新 UI 因此不同的状态会添加或删除 UI 的不同部分 第一次运行时效果很好 但是 一旦应用程序处于后台并且Wo
  • 类型容器“Android 依赖项”引用不存在的库 android-support-v7-appcompat/bin/android-support-v7-appcompat.jar

    我在尝试在我的项目中使用 Action Bar Compat 支持库时遇到了某种错误 我不知道出了什么问题 因为我已按照此链接中的说明进行操作 gt http developer android com tools support libr
  • Android - 从资产中解析巨大(超大)JSON 文件的最佳方法

    我正在尝试从资产文件夹中解析一些巨大的 JSON 文件 我如何加载并添加到 RecyclerView 我想知道解析这种大文件 大约 6MB 的最佳方法是什么 以及您是否知道可以帮助我处理此文件的良好 API 我建议您使用GSON lib h
  • Android 后退按钮无法与 Flutter 选项卡内的导航器配合使用

    我需要在每个选项卡内有一个导航器 因此当我推送新的小部件时 选项卡栏会保留在屏幕上 代码运行得很好 但是 android 后退按钮正在关闭应用程序而不是运行 Navigator pop import package flutter mate
  • 如何以编程方式检查 AndroidManifest.xml 中是否声明了服务?

    我正在编写一个库 该库提供了一项服务 其他开发人员可以通过将其包含在他们的项目中来使用该服务 因此 我无法控制 AndroidManifest xml 我在文档中解释了要做什么 但一个常见的问题是人们忽略了将适当的 标记添加到其清单中 或者
  • 是否可以将数组或对象添加到 Android 上的 SharedPreferences

    我有一个ArrayList具有名称和图标指针的对象 我想将其保存在SharedPreferences 我能怎么做 注意 我不想使用数据库 无论 API 级别如何 请检查SharedPreferences 中的字符串数组和对象数组 http
  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • 发布android后更改应用内购买项目的价格

    在 Google Play 上发布后 是否可以更改应用内购买商品的价格 我假设该应用程序也已发布 完整的在线文档位于http developer android com http developer android com也http sup
  • 原色(有时)变得透明

    我正在使用最新的 SDK 版本 API 21 和支持库 21 0 2 进行开发 并且在尝试实施新的材料设计指南时遇到了麻烦 材料设计说我需要有我的primary color and my accent color并将它们应用到我的应用程序上
  • Google 云端硬盘身份验证异常 - 需要许可吗? (v2)

    我一直在尝试将 Google Drive v2 添加到我的 Android 应用程序中 但无法获得授权 我收到 UserRecoverableAuthIOException 并显示消息 NeedPermission 我感觉 Google A
  • 我的设备突然没有显示在“Android 设备选择器”中

    我正在使用我的三星 Galaxy3 设备来测试过去两个月的应用程序 它运行良好 但从今天早上开始 当我将设备连接到系统时 它突然没有显示在 Android 设备选择器 窗口中 我检查过 USB 调试模式仅在我的设备中处于选中状态 谁能猜出问
  • Android向menuItem添加子菜单,addSubMenu()在哪里?

    我想根据我的参数以编程方式将 OptionsMenu 内的子菜单添加到 menuItem 中 我检查了android sdk中的 MenuItem 没有addSubMenu 方法 尽管你可以找到 hasSubMenu 和 getSubMen
  • 如何根据 gradle 风格设置变量

    我想传递一个变量test我为每种风格设置了不同的值作为 NDK 的定义 但出于某种原因 他总是忽略了最后味道的价值 这是 build gradle apply plugin com android library def test andr
  • Android 套接字和 asynctask

    我即将开始制作一个应该充当 tcp 聊天客户端的应用程序 我一直在阅读和阅读 我得出的结论是最好 如果不需要 将我的套接字和异步任务中的阅读器 问题是我不确定从哪里开始 因为我是 Android 新手 这至少对我来说是一项艰巨的任务 但据我
  • 实现滚动选择 ListView 中的项目

    我想使用 ListView 您可以在其中滚动列表来选择一个项目 它应该像一个 Seekbar 但拇指应该是固定的 并且您必须使用该栏来调整它 我面临的一个问题是 我不知道这种小部件是如何调用的 这使得我很难搜索 所以我制作了下面这张图片 以
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef

随机推荐

  • 使用 python (win32com.client) 将图像插入到 powerpoint 幻灯片中

    我的任务是在幻灯片中插入数百张图像并调整其大小 我需要使用与我们公司使用的其他幻灯片类似的特定源格式 我一直在使用活跃的 python win32com API 并且已经弄清楚如何打开文件并创建空白幻灯片 我的问题是我将如何插入图像并将其大
  • Fancybox 包装器无法根据图像尺寸正确自动调整大小

    我在使用 FancyBox 时遇到问题 它应该根据图像的尺寸自动调整包装器的大小 它不是这样做的 具体来说就是太小了 这是我使用的 FancyBox jQuery 代码 a rel photo gallery fancybox type i
  • 在QGraphicsView的ScrollHandDrag模式下,如何停止场景中QGraphicsItems的移动?

    我有多个QGraphicsItem场景中的内容分布在场景的不同部分 在应用程序中 有不同的模式 其中一种模式用户可以滚动场景 手掌拖动模式 为了实现场景I的滚动set dragMode of QGraphicsView to ScrollH
  • 无法识别已安装的项目特定的 nuget 包

    我有一个 Web 项目 由于 nuget 错误而无法构建 我们有许多网站都使用名为 Sitecore 的网络 CMS 我们不同的网站在不同的版本下运行 因此 我们有一个针对多个版本的通用库如此处所述 https stackoverflow
  • 本地图像在 React-Native 应用程序发布版本中不可见

    在我的反应本机应用程序中我有 src http postimg org image ak6w7cbk3 文件夹 其中包括Images文件夹和屏幕文件夹 Myscreens文件夹有各种成分我在哪里使用本地图像Images使用以下代码
  • 如何使用表单身份验证将用户重定向到密码恢复页面

    我是 asp net 的初学者 我目前有一个登录页面 屏幕底部有一个忘记密码链接按钮 我还使用表单身份验证来防止未经授权的用户访问其他页面 除了一件事之外 身份验证似乎工作正常 一旦用户单击链接按钮 它就会阻止用户访问密码恢复页面 如何允许
  • 可变数量的参数而不装箱值类型?

    public void DoSomething params object args 上述签名的问题在于 传递给该方法的每个值类型都将被隐式装箱 这对我来说是严重的性能问题 有没有办法声明一个接受可变数量参数而不装箱值类型的方法 Thank
  • jQuery 中的输入与 :Input

    我想知道为什么人们似乎更喜欢 input over input作为 jQuery 选择器 基本上 这两行似乎做了同样的事情 input first focus input first focus 但第二个版本使用更广泛 我不明白为什么 此外
  • 第三方脚本可以设置第一方 cookie 吗?

    我在网上阅读了很多有关 cookie 的内容 但没有解决这个问题 假设我在 a com 上有一台服务器 而 b com 提供的网页在我的服务器上的该网页中嵌入了一个脚本 该脚本在设置 cookie 方面可以做什么 它可以设置一个cookie
  • 需要特殊数组(线性场)的算法

    我有一个数组 线性场 与预先排序的数字 1 2 3 4 5 6 但这些数组向右移动 k次 now its 5 6 1 2 3 4 k 2 但我不知道k 只有数组A 现在我需要一个算法来找到 A 中的最大值 运行时间 O logn 我认为它是
  • Vue.js 单向绑定表单

    我是 Vue js 的新手 我正在尝试测试这个框架的一些功能 现在我正在测试输入表单 我想进行单向绑定 而不使用v model指令 但我找不到任何示例 有人可以帮助我吗 这是单向和双向绑定的示例 var V new Vue el vue i
  • 如何创建弹出菜单

    我是 javafx 的新手 我想在单击鼠标右键时显示 弹出菜单 我找到一个教程Here http pixelduke wordpress com 2011 12 11 popupmenu in javafx and Here http la
  • 应用默认样式和 onClick 更改按钮的样式 -Angular 4

    我有一个按钮 我想应用按钮的默认样式 当用户单击按钮时 将按钮样式颜色更改为红色 将背景颜色更改为白色 Blow 是我的 css 和组件 btn default color white background color blue btn c
  • 如何检查字符串列表是否存在于两个单独的文件中

    我有两个文件 文件 A 是 IP 地址列表 同一行上有相应的 MAC 地址 文件 B 是仅包含 MAC 地址的列表 我需要比较这两个文件并列出文件 A 中没有在文件 B 中找到的 MAC 地址的行 FILE A 172 0 0 1 AA B
  • 如何让IE10的边框折叠起来?

    有没有人遇到过在 IE10 中无法工作的表格边框折叠的解决方案 我在需要的地方使用了网站上的表格 并且它们在所有其他浏览器中显示良好 但从 IE 10 开始 边框太厚了 上面的问题可能已经有几个月了 但今天我遇到了同样的问题 并且认为我至少
  • Shopify 购物车更改事件 - javascript

    当 Shopify 购物车发生更改时是否会触发一个事件 我可以每隔 x 秒刷新一次购物车 看看是否有什么变化 但基于事件的方法总是更好 虽然没有一站式 购物 呵呵 的方法 但这是可以做到的 在 Shopify 中 商品可以通过常规 HTML
  • 如何使用 Scikit-learn 查找簇质心 [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有一个带有 标记 集群的数据集 我试图找到每个簇的质心 一个向量 其距离是簇的所有数据点中最小的 我找到了许多解决方案
  • React-native应用程序不会在后退按钮上关闭

    当按下后退按钮时 我的反应本机应用程序 在 Android 上 不会关闭 它关闭并进入后台并在那里运行 动画 我也尝试过这个 但得到了相同的结果 BackHandler addEventListener hardwareBackPress
  • 为多个应用程序创建安装程序

    嘿 我正在尝试从一台服务器计算机创建多个游戏的安装程序 然后由各个计算机执行 例如 BF 1942 WC3 BF2 DOW 但是 我需要能够选择要安装的应用程序 这是一个简单的复选框 我对 C 的了解有限 解决这个问题的最佳方法是什么 我看
  • Android NDK:如何在没有java的情况下重写NativeActivity中的onBackPressed?

    我的应用程序完全使用 C C 编写NativeActivity 它没有 Java 代码 基于 native activity NDK 示例 按 后退 按钮将其关闭 破坏活动 但我需要此按钮的其他行为 因为我有自己的 UI 和菜单 它们通过