在 Android 中处理 unix 信号

2024-02-10

我正在编写一个 Java 应用程序,它使用命名管道与 C++ 应用程序进行通信。当 C++ 应用程序终止时,Java 会收到 SIGPIPE,Java 应用程序也会终止。

在 C/C++ 上,我知道如何捕获该信号并忽略它。是否可以在 Android/Java 上做类似的事情?


看来这确实不可能。可用的最佳解决方案是添加关闭挂钩并“优雅地”重新启动应用程序,如下所述:

EDIT:

我需要这个,因为(当时)我有 JNI 代码,我在上面打开了 FD 并对其进行读/写。 FD 被打开到一个命名套接字(一个 Unix 管道),当管道的远程端(在我的例子中是一个守护进程,或 Android C/服务)关闭连接(或死亡)时,你的一端将收到一个信号。这并不总是好的。恕我直言,处理这个问题的最佳方法应该是使用来自良好的旧纯 C 代码的信号处理程序,然后吞下它(否则 - 您应该通知应用程序的 Java 端)。

http://stackoverflow.com/questions/2541597/how-to-gracefully-handle-the-sigkill-signal-in-java
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android 中处理 unix 信号 的相关文章

  • 如何清除所有WebView存储的信息?

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

    我正在开发一项后端服务 通过 FCM 或 APNS 向移动应用程序发送推送通知 我想创建一个可以在一分钟内运行的自动化测试 并验证服务器是否可以成功发送通知 请注意 我不一定需要检查通知是否已送达 只需检查 FCM 或 APNS 是否已成功
  • 类型容器“Android 依赖项”引用不存在的库 android-support-v7-appcompat/bin/android-support-v7-appcompat.jar

    我在尝试在我的项目中使用 Action Bar Compat 支持库时遇到了某种错误 我不知道出了什么问题 因为我已按照此链接中的说明进行操作 gt http developer android com tools support libr
  • 找不到 com.google.firebase:firebase-core:9.0.0 [重复]

    这个问题在这里已经有答案了 在遵循有些不一致的指示之后here https firebase google com docs admob android quick start name your project and here http
  • Android 后退按钮无法与 Flutter 选项卡内的导航器配合使用

    我需要在每个选项卡内有一个导航器 因此当我推送新的小部件时 选项卡栏会保留在屏幕上 代码运行得很好 但是 android 后退按钮正在关闭应用程序而不是运行 Navigator pop import package flutter mate
  • CardView 圆角获得意想不到的白色

    When using rounded corner in CardView shows a white border in rounded area which is mostly visible in dark environment F
  • 无法获取log.d或输出Robolectrict + gradle

    有没有人能够将 System out 或 Log d 跟踪从 robolectric 测试输出到 gradle 控制台 我在用Robolectric Gradle 测试插件 https github com robolectric robo
  • 谷歌坐标认证

    当我尝试连接到 Google 坐标时 总是出现异常GoogleAuthException 我拥有 Google 地图协调中心许可证 我确实使用我的包应用程序名称和 SHA1 在 google 控制台中创建了我的客户端 ID 我将权限添加到清
  • android xamarin 中的 reCaptcha

    我想在 Xamarin android 应用程序中实现验证码 我抓住了这个在 Android 中集成 googles reCaptcha 验证 https www c sharpcorner com article how to integ
  • 计数物体和更好的填充孔的方法

    我是 OpenCV 新手 正在尝试计算物体的数量在图像中 我在使用 MATLAB 图像处理工具箱之前已经完成了此操作 并在 OpenCV Android 中也采用了相同的方法 第一步是将图像转换为灰度 然后对其进行阈值计算 然后计算斑点的数
  • 找不到处理意图 com.instagram.share.ADD_TO_STORY 的活动

    在我们的 React Native 应用程序中 我们试图让用户根据视图 组件中的选择直接将特定图像共享到提要或故事 当我们尝试直接使用 com instagram share ADD TO FEED 进行共享时 它以一致的方式完美运行 但是
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 尝试在 ubuntu 中编译 android 内核时出错

    我正在尝试从源代码编译 Android 内核 并且我已经下载了所有正确的软件包来执行此操作 但由于某种原因我收到此错误 arm linux androideabi gcc error unrecognized command line op
  • 错误:在根项目“projectName”中找不到项目“app”

    我有一个在 Eclipse 中开发的旧应用程序 现在尝试将其迁移到 Android Studio 我更新了库并遵循了基本步骤 现在 我收到此错误 Error Project app not found in root project pro
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • 实现滚动选择 ListView 中的项目

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

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

    我有两个文本视图 需要在布局中并排放置 并且必须遵守两条规则 Textview2 始终需要完整显示 如果布局中没有足够的空间 则必须裁剪 Textview1 例子 文本视图1 文本视图2 Teeeeeeeeeeeeeeeeeextview1
  • android sdk 的位置尚未在 Windows 操作系统的首选项中设置

    在 Eclipse 上 我转到 windows gt Android SDK 和 AVD Manager 然后弹出此消息 Android sdk 的位置尚未在首选项中设置 进入首选项 在侧边栏找到 Android 然后会出现一个 SDK 位
  • 如何将 google+ 登录集成到我的 Android 应用程序中?

    大家好 实际上我需要通过我的应用程序从 google 登录人们 现在我阅读了 google 上的文档 其中指出 要允许用户登录 请将 Google Sign In 集成到您的应用中 初始化 GoogleApiClient 对象时 请求 PL

随机推荐

  • Maven 程序集:添加同一工件的不同版本

    我使用 Maven 程序集插件创建应用程序存档 我的 pom 中存在的所有依赖项都包含在内 没有任何问题 现在我需要包含同一工件的两个或多个版本 如果我在我的 pom 中放入
  • Codeigniter 2.1 $this->input->set_cookie($some_var);不工作

    我开始创建一个自定义库 我将加载该库来检查用户是否登录以及注册用户 注册尚未开始 但这并不重要 这是有问题的部分 它不会设置cookie this gt load gt helper cookie some value asd some c
  • Promise { } - 尝试等待 .map

    我在用 map绘制新对象并将旧价格添加到地图中 我将 Async Await 与我的数据图一起使用 这是我的代码的样子 let datasets await changes map async data gt let products le
  • 通过 TCP 连接到 DBus 服务

    我是进程间通信方面的新手 我需要你的帮助和清晰的解释 我有 2 个应用程序 其中一个是服务 一个是客户端 我使用 QT C 来编写它们 当他们在一台本地 PC 上工作时 一切都很好 但我需要把它们分开 所以 我在 IP 192 30 82
  • Href 和 Url.Content 有什么区别?

    Both Href and Url Content可用于解析虚拟路径 该路径相对于文件或文件夹的虚拟根路径 Href 和 Url Content 之间有什么区别 url content 不仅仅创建一个普通的 href 它还考虑应用程序的子
  • 在 Atom 中使用 Hydrogen 设置 Python 虚拟环境

    我正在从 VS Code 切换到 Atom 并且正在尝试为我的 python 项目设置一个虚拟环境 在 VS Code 中这很容易做到 我运行以下脚本 当我运行脚本时 它会自动开始使用新的环境 包含所有必需的包 python3 m venv
  • Android - 检测与特定 wifi ssid 断开连接的正确方法?

    我见过几个 BroadcastReciever 示例来检测 wifi 断开连接 但它们似乎都无法正常工作 例如 每次断开连接触发两次 并且没有提到检查 ssid 这是否可能 所以为了澄清一下 我想检测与特定 ssid 的断开连接 设备上实际
  • 更改格子图中条带上的文本

    如何更改格子图中显示的文本 例子 假设我有一个由 3 列组成的数据框测试 x 1 1 2 3 4 5 6 7 8 9 10 y 1 A A A A A B B B B B a 1 1 9952066 1 7292978 0 8789127
  • 使用标题转动用户位置注释

    我正在尝试更改我的应用程序中的用户注释 以便它显示通常的蓝点 但有一个三角形来显示用户面向的方向 我宁愿旋转用户注释而不是整个地图 这就是 MKUserTrackingModeFollowWithHeading 所做的 我有一个基本版本可以
  • Reflect.getOwnMetadata 不是最新 Aurelia 的 karma 函数

    更新到最新版本的 Aurelia 3 月更新 beta 1 1 4 后 每次运行 karma 测试时都会收到以下错误 Error Reflect getOwnMetadata is not a function Error loading
  • 如何解决 System.Text.Json.JsonException:在实体框架中检测到可能的对象循环? [复制]

    这个问题在这里已经有答案了 我有一个包含表 数据的数据库 因此我使用了数据库优先方法 使用以下命令来构建模型 dotnet ef dbcontext scaffold Server Database MyDb Trusted Connect
  • (简单)HTML属性是否允许在赋值之间有空格

    我正在将一些属性解析为字符串 因此我需要知道如何在 HTML XHTML 元素属性中使用空格 div width 150px div 这也正确吗 div width 150px div 如果有人知道使用 JavaScript 迭代属性及其值
  • gradle 构建中不需要的 tar、zip、jar 分发

    我正在做 gradle build 其中包括许多项目 当我跑步时gradle build命令它生成不需要的包 如 tar zip 那么我应该怎么做才能排除这些任务 我正在使用战争插件来生成战争 apply plugin war 我还使用以下
  • Android 调试技巧

    我的程序经常崩溃 我在 LogCat 中看不到任何内容 也无法在其他地方看到任何有用的信息来找出问题所在 我唯一看到的是某种例外 这是不可接受的 并且使得 Android 编程几乎不可能 我确信一定有一些额外的帮助来调试 但经过几周的搜索
  • 导入路径不能以“.ts”结尾 - NodeJS 和 Visual Code

    我在尝试构建一个简单的 NodeJS 应用程序时遇到错误 即使 Visual Code 提示错误 我的代码仍然运行 当我从 import 语句中删除 ts 扩展名时 出现找不到文件的错误 我正在使用 webpack 但这些文件来自服务器 这
  • >>'运算符[关闭]' aria-label='sql server中的无符号右移'>>>'运算符[关闭]'> sql server中的无符号右移'>>>'运算符[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 如何在sql server中编写无符号右移运算符 表达式就像value gt gt gt 0 这是例如 5381 gt
  • C++:使用“.”表达式和函数调用上的运算符

    我想知道使用成员运算符是否是一个好的做法 像这样 someVector segment getFirst segment getSecond normalize normalCCW 只是这样做是为了展示我想知道的两件不同的事情 即如果使用
  • 如何在CSS中引用带有空格的长类名?

    我正在尝试设计一些 Drupal 输出的样式 特别是 我试图引用一个具有超长名称 包括空格 的类 我不清楚这个的语法 请原谅我 我是 CSS 新手 看
  • winform 中的字段验证

    winforms 中验证字段有快捷方式吗 例如 在保存记录之前需要填写特定的文本框 我总是做的是在保存之前首先以编程方式检查所有必填字段 例子 protected bool CheckFields bool isOk false if te
  • 在 Android 中处理 unix 信号

    我正在编写一个 Java 应用程序 它使用命名管道与 C 应用程序进行通信 当 C 应用程序终止时 Java 会收到 SIGPIPE Java 应用程序也会终止 在 C C 上 我知道如何捕获该信号并忽略它 是否可以在 Android Ja