做了一个android项目整合的框架也比较多,比如整合了个推推送,有后台Service,这个时候如果我退出app的方式调用System.exit(0)退出app,这样操作是否合理。
【现在我遇到一个问题就是,使用这种方式退出app,有几率再次进入到app里面的时候发现个推使用不了,需要强制停止后才能使用】
这样的解释清晰吗?
您的每一个用心回答,都会让这个世界变得更美好一些!
为何要纠结推送的问题,在Android中,就是个大坑。
每一个app都想活着,等待推送。想想都可怕。大家都在争夺资源。
所以现在内存都12g了。
当你推出app到后台的时候开始。进程优先级就降低了。
如果系统内存不足,会k进程。
从优先级低的开始k,想不被k,就要提高优先级。
推送通常都是开辟新的进程做的,如果被k掉了。就需要再启动。
你得看看怎么再次启动这个进程了。
在as中,点击debug调试,可以看到多个进程的。
你可以通过这个看看,进程是否死了。
使用不了,是收到不消息吗?
既然强制停止后可以使用,那退出的时候怎么不使用killProcess杀死进程呢?
System.exit(0) 退出并不能保证所有Activity栈中所有的Activity都关闭了。
你可以判断一下,先关闭所有的。或者使用finishAffinity把栈中所有的都先关闭掉,在退出
为何要纠结推送的问题,在Android中,就是个大坑。
每一个app都想活着,等待推送。想想都可怕。大家都在争夺资源。
所以现在内存都12g了。
当你推出app到后台的时候开始。进程优先级就降低了。
如果系统内存不足,会k进程。
从优先级低的开始k,想不被k,就要提高优先级。
推送通常都是开辟新的进程做的,如果被k掉了。就需要再启动。
你得看看怎么再次启动这个进程了。
在as中,点击debug调试,可以看到多个进程的。
你可以通过这个看看,进程是否死了。
使用不了,是收到不消息吗?
既然强制停止后可以使用,那退出的时候怎么不使用killProcess杀死进程呢?
System.exit(0) 退出并不能保证所有Activity栈中所有的Activity都关闭了。
你可以判断一下,先关闭所有的。或者使用finishAffinity把栈中所有的都先关闭掉,在退出