1、system.exit(0)可以退出一个进程的内容。假如在一个activity中存在一个线程这样他是可以退出的。但是在这个activity如果启动一个服务,然后在服务中启动一个线程,那么他无法关闭服务和这个线程 。这是为什么 启动服务不是也在这个进程中吗? } } @Override System.exit(0); } @Override } 在线等 求大神解释 |
|
10分 |
System.exit(0);关闭的是主线程,服务中另外启动的线程不在主线程之上,线程执行完之后自动关闭。其实你的问题就是一个结论。
|
我的问题其实是 system.extit(0)能关闭那些东西,他为什么无法关闭 服务,服务也是运行在主线程中。而且是同一个进程中,而他没关闭。 |
|
10分 |
在Java中可以用这个方法来结束整个应用,在android中,这个方法也可以关闭Activity,不过有种情况需要注意:开启的服务如果是和Activity绑定在一起的,当Activity被kill掉后,service也随之被kill掉;如果service没有和Activity绑定在一起,当Activity被kill掉后,service是不会马上被kill掉的,不知道LZ能否理解。
|
10分 |
也就是如果是bindService启动的服务才会被KILL掉 如果是通过intent启动的需要手动stop |
10分 |
服务的存在意义就是后台运行,如果会跟主线程一起销毁那自己的意义也基本没了!想要关闭的话在ondestory里面手动吧!
|
我也很不明白,service本来就是和activity在同一个线程,activity挂了,应该service也挂了才对,但是没有。。。
|
|
activity若跟service没有bind一起,那么在activity中调用system.exit(0)之后,整个程序确实马上退出了,但是你仔细观看一下系统的log,会有个schedule restart 你的yingyongming 5000ms later,也就是说系统会重启你的service,你可以做个试验测试一下
|
|
你手动启的服务,在退出activity的时候你也没手动关闭服务啊!并且在服务的onDestroy里加上System.exit(0);
或者你activity绑定服务,这样的话就不用手动启动和手动关闭服务了!但服务的onDestroy里都应System.exit(0); 你试下! |
|
楼主的问题解决么,能不能贴出你解决的办法。我也碰到和你一样的情况,并且使用 stopself和stopservice会出现ANR
|