Hi,
android系统使用appe播放audio资源,相关进程被kill之后appe无法再次打开,原因是appe资源被占用。
在Ti提供的demo中,通过 signal(SIGKILL, appe_exit); 来解决程序被kill的时候需要做的资源回收处理,即使用appe_close来释放资源。 但是,如果使用kill -9 来结束任务,这个signal是无法被捕捉到的,所以再次执行appe_open会fail,err原因是资源被占用。
我已经对TI的demo做了测试,demo捕捉信号如下:
signal(SIGINT, appe_exit);
signal(SIGTERM, appe_exit);
signal(SIGABRT, appe_exit);
signal(SIGKILL, appe_exit);
signal(SIGHUP, appe_exit);
Ctrl + c 以及 kill均能被捕捉到,但是kill -9 不能被捕捉到。
在android系统中,资源紧张导致server被kill是常见的,由于信号无法捕捉到,再次重入执行appe_open会出现上述错误。
请帮助分析一下!
谢谢!