jni里面fork出来的子进程阻塞了,导致主程序apk退出的时候调用System.exit(0);会卡死

dj_c 2014-01-13 09:52:25

fork出来的子程序是阻塞的,导致主程序apk退出的时候调用System.exit(0);会卡死,怎么解决这个问题,broadcast执行c代码也会卡死。

同学们咋处理的,就是卸载上报,用了fork创建一个子进程,然后在子进程里面监听"/data/data/[包名]"的变化,此目录被删除,说明程序被卸载
涉及到的方法主要有:

inotify_add_watch(); //设置监听
read(); //阻塞
inotify_rm_watch(); //移除监听
...全文
502 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tsplaycool 2015-01-22
  • 打赏
  • 举报
回复
楼主说的这个问题,我也遇到了,也是这么解决的。 但是现在遇到了新的问题,跑了一段时间后,总是ANR,也不知道是c层哪个方法导致的。
dj_c 2014-01-25
  • 打赏
  • 举报
回复
后台是2个进程,不过占用不高 问题不大,不过好像要失效,就是read侦听失效。具体什么原因还不知道呢
melega 2014-01-21
  • 打赏
  • 举报
回复
这样的话remoteservice不是也一直在后台运行,后台有3个进程,开销很大
melega 2014-01-20
  • 打赏
  • 举报
回复
楼主,能不能把解决问题的代码贴点出来看一下,我也遇到这样问题?
dj_c 2014-01-13
  • 打赏
  • 举报
回复
问题已经解决了,用remoteservice开一个单独的进程 这样就可以了。
wjw2066616 2014-01-13
  • 打赏
  • 举报
回复
开线程程监听

80,354

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧