2 qq 30750651 qq_30750651 于 2016.05.02 13:58 提问

Android怎么保持service中的连接不断掉
Android应用在service维持了一个与服务器间的socket连接,在调用系统相机拍照的时候,在一些低端机上会因为内存不足而把应用结束掉,拍完照之后应用会回复,但是service中连接的session就变成null了,请问怎么能在拍照时保持这个连接不断掉?

6个回答

CSDNXIAON
CSDNXIAON   2016.05.02 14:01

android Service 保持cpu
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

q610098308
q610098308   2016.05.02 15:01

1.原因是拍照时,把后台的Activity回收了;
2.方法,增加进程的优先级;
具体见我的博客:
http://blog.csdn.net/q610098308/article/details/51179419

u012215068
u012215068   2016.05.04 15:17

当前顶部应用怎么可能被回收,你本身手机有问题吧,或者你本身的应用内存占用太高,调用相机的时候瞬间就内存溢出了!换个手机,或者看看代码质量吧

baiyuliang2013
baiyuliang2013   2016.05.06 09:45

即便你不调用拍照,应用在后台放置一段时间也可能会被系统回收,这个需要你在Service中开启一个定时器去定时检查你的连接是否为空,如果为空就重新链接就行了

u010560898
u010560898   2016.05.07 16:48

调用相机拍照,返回的图片如果直接去获取图片,在一些低端的设备上是比较恼火的,或经常以为内存不足,而获取失败。
所以不能直接操作图片,也就是不能直接返回一个Bitmap,而是返回一个Uri,操作图片就操作Uri,这样内存开支就小很多了

dongfeng9ge
dongfeng9ge   Ds   Rxr 2016.05.18 13:26

1、Service优先级
2、Service重启

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
android 解决wifi断线不稳定的问题-终极办法
android的wifi估计大家都用的很不爽,大概就是表现为上一会儿就无法连接了(虽然图标显示还是正常连接的) ping 也是经常断线。简直用wifi来上网就是一种折磨。 话说到处找答案,什么wifi lock 之类的软件根本不顶用。 经过艰苦的测试,终于找到了一个保持wifi稳定的方法。{:1_109:} 【以下内容为原创,安卓网首发,如果转载请注明出处】 ------------
【Service】Android中保持Service存活的方法
关于如何让Service keep alive,我在上篇博客给出的解决方案是:方案一,让服务器端发一个推送,检查Service是否还存活;方案二,将Service独立出来,运行在另一个进程中。 这两个方案有些地方需要说明和改进,然后还会有其他方案补充进来。 方案一:利用推送来确保Service存活。 方案一的做法有点“偷懒”。因为相当于把这个难题转移给推送服务提供者来处理,或者说
android如何让service不被杀死-提高进程优先级
1.在service中重写下面的方法,这个方法有三个返回值, START_STICKY是service被kill掉后自动重写创建  [代码]java代码:  @Override  public int onStartCommand(Intent intent, int flags, int startId) {  return START_STICKY;  }------------
Android如何降低service被杀死概率
让app 的service常驻其实是很流氓的做法,但是需求摆在那里。。。 但是要清除一点:想百分百保活service在当前是无法做到的,只能降低service被杀死的概率,曾经看了多少篇网上大神的牛逼博客,从各个层面分析如何让service不被杀死或者被杀死后重启,特别是从android系统底层分析,觉得特别牛逼,但是尝试之后没有啥用,以前做service保活总是一个劲的钻研android系统层的
多个activity怎么共享一个socket,实际应用中怎么保持socket的长连接?
在不同的activity中怎么公用一个socket,每次在不同的activity中发消息,都要new一个新的socket出来,很麻烦。。还有就是,实际应用中,如果一段时间不发消息,socket会被android系统自动断掉,怎么才能保持socket的长连接呢?   ·       答:可以使用Service来操作socket。多个activity统一跟service通讯进行操作。service
Android中如何让Service不被一键清理且在息屏后保活
MarsDaemon库的使用及其出现的问题的解决 最近碰到这么一个需求,就是从服务器获取一个时间,每天在这个时间提醒用户,所以首先需要创建一个服务,让它能够长期运行在后台,且不被手机管理软件杀死,但是在Android5.0以后,什么守护进程啊等等方法都失效,后来在github上发现了一个据说可以让Service不死的库,支持到api23, https://github.com/Marswin/M
如何保证Service不被杀死一直运行
Android开发的过程中,每次调用startService(Intent)的时候,都会调用该Service对象的onStartCommand(Intent,int,int)方法,然后在onStartCommand方法中做一些处理。 从Android官方文档中,我们知道onStartCommand有4种int返回值,首先简单地讲讲int返回值的作用。 1.修改onStartComman
保持Service不被Kill掉的方法--双Service守护 && Android实现双进程守护
保持Service不被Kill掉的方法--双Service守护 AndroidManifest.xml: <activity android:name=".MainActivity" android:label="@string/app_name" >
如何保持service长期在后台运行
android 一直运行的后台服务是不存在的,而且也不是最佳实践,因为一直运行的后台服务会耗费大量系统资源,影响其他程序的响应从而影响到用户体验。 可以考虑使用如下几种方案来达到一直运行的效果。 1. 调用startForeground方法,android: Service vs SingleTop Activity moved to background 2. 使用AlarmManag
设置securecrt 连接不中断
能保持连接不中断,那么有两类情况,一是永久性保持连接,二是非永久性保持连接。 所谓永久性保持连接,即在服务器中设置logingracetime从默认的2m及120秒改成0,;客户端无类似设置; 基于这种设置,非永久性保持连接中的服务器端设置就很清楚了,就是修改这个配置,比如30s即30秒; 非永久性保持连接中的客户端设置即让客户端按时间隔发送数据,那么设置时间间隔小于服务器中的时间即可,这种