我的Java的代码对C ++函数JNI调用(function0); C ++代码,然后开始一个过程:
int main_pid,new_process_pid=-1;
void function0(){
main_pid=getpid();
new_process_pid=fork();
if(main_pid!=getpid()){
main_process();//some process with its own threads
}
}
void kill_sub_process(){
if(new_process_pid!=-1){
kill(new_process_pid,SIGKILL);
}
}
当我尝试从我的活动进行呼叫杀子过程中的onStop()来kill_sub_process功能以下错误的logcat和应用程序崩溃显示出来:
致命信号4(SIGILL),码1,在TID 3844故障地址0x91cb3110
什么是安全杀子过程的正确方法?
该过程被打死,而不当我调用信号处理程序从子进程中,但是当父母将信号发送失败的任何问题;
通过试验和错误我想,通过在C调用叉创建子进程++代码可以在Java代码通过调用杀死android.os.Process.killProcess(PID)(其中pid是子进程id),但不被父C ++代码;