原来在android写的心跳包,用的是java下的Timer实现的,后来发现,在usb线断开的时候,屏幕关闭的话,Timer就会失效.
后来网上说要用Android下的Alarm,但是感觉实现不了哇,特来求教
/******************************************************** 心跳包部分 ************************************/
// 启动心跳包
public void createHeardbeatConnection(Socket socket, Context ctx,
boolean isRun) {
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
Intent intent = new Intent(this, AlarmCaller.class);
intent.putExtra("socket", socket);
PendingIntent sender = PendingIntent.getBroadcast(this, AlarmManager.RTC_WAKEUP, intent, 0);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, System.currentTimeMillis(), 5*1000, sender);
//原来用java下的Timer实现的,但是屏幕关闭了会停掉
timer = new Timer();
timer.schedule(new HeardBeatTask(socket,ctx,isRun), new Date(),Protocol.HEART_BEAT_TEST_TIME * 60 * 1000);
}
问题:
功能是写在一个Service里的,PendingIntent要启动另一个Service?那么当前的socket如何传递过去呢?
或者有其它方式实现?ps. 还有个问题,想让自己的apk动态生成,生成的每一个apk都有自己的一些配置信息,通过java app生成,像exe那种,他们好像是直接把要改的内容写成特定格式,比如aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,然后读这个文件,查找替换,可是apk这种方法实现不了,请问,该如何实现类似功能呢?androidusbapp
后来网上说要用Android下的Alarm,但是感觉实现不了哇,特来求教
/******************************************************** 心跳包部分 ************************************/
// 启动心跳包
public void createHeardbeatConnection(Socket socket, Context ctx,
boolean isRun) {
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
Intent intent = new Intent(this, AlarmCaller.class);
intent.putExtra("socket", socket);
PendingIntent sender = PendingIntent.getBroadcast(this, AlarmManager.RTC_WAKEUP, intent, 0);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, System.currentTimeMillis(), 5*1000, sender);
//原来用java下的Timer实现的,但是屏幕关闭了会停掉
timer = new Timer();
timer.schedule(new HeardBeatTask(socket,ctx,isRun), new Date(),Protocol.HEART_BEAT_TEST_TIME * 60 * 1000);
}
问题:
功能是写在一个Service里的,PendingIntent要启动另一个Service?那么当前的socket如何传递过去呢?
或者有其它方式实现?ps. 还有个问题,想让自己的apk动态生成,生成的每一个apk都有自己的一些配置信息,通过java app生成,像exe那种,他们好像是直接把要改的内容写成特定格式,比如aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,然后读这个文件,查找替换,可是apk这种方法实现不了,请问,该如何实现类似功能呢?androidusbapp
解决方案 »
- android gallery ANR异常
- Cursor 如何循环放到Map里呢
- 请问android gallery如何设置,让图片显示在靠左位置。而不是在中间
- 对话框问题,求牛人帮忙
- RatingBar星形的颜色怎样设置
- 问一个关于ContentProvider的问题
- “==”或者equals问题。
- android surfaceview如何锁定长宽比
- 我在开发手电筒应用时遇到了问题,不知该如何调节闪光灯亮度?
- android手机 mediaPlay 播放视频不触发缓冲事件
- 菜鸟学写安卓小程序,怎么在gprs下通过socket实现两个安卓程序之间的通信呢?
- android sdk里面只有4.3的版本
你试下在alarmManager通知后先拿个wakelock
程序是一个常驻内存的,如果一直不放,是不是一会儿就没电了?
程序是一个常驻内存的,如果一直不放,是不是一会儿就没电了?现在突然又来一问题,service里的socket,在屏幕关掉的情况下,可以正常的读写数据吗?两台真机,一台可以,一台不行...........
4.2.2(i9500) 测试是完全正常的.
方便加下147654368指导一下吗?
4.2.2(i9500) 测试是完全正常的.
方便加下147654368指导一下吗?我这边屏幕关掉后短时间内能正常收发数据,但时间一长就不行了看了昨晚的log,ScheduledExcutorService在长时间待机后也不行。在4-5小时内1次都没执行我这里还有一个alarm版本的,这个在长时间待机后是能继续稳定执行。但用了alarm问题就和你一样了,alarm和socket配合起来比较麻烦
4.2.2(i9500) 测试是完全正常的.
方便加下147654368指导一下吗?我这边屏幕关掉后短时间内能正常收发数据,但时间一长就不行了看了昨晚的log,ScheduledExcutorService在长时间待机后也不行。在4-5小时内1次都没执行我这里还有一个alarm版本的,这个在长时间待机后是能继续稳定执行。但用了alarm问题就和你一样了,alarm和socket配合起来比较麻烦那你们现在是怎么处理的呢?现在我都不想管心跳包了,只希望待机下socket能正常收发数据,这样可有啥好办法?
4.2.2(i9500) 测试是完全正常的.
方便加下147654368指导一下吗?我这边屏幕关掉后短时间内能正常收发数据,但时间一长就不行了看了昨晚的log,ScheduledExcutorService在长时间待机后也不行。在4-5小时内1次都没执行我这里还有一个alarm版本的,这个在长时间待机后是能继续稳定执行。但用了alarm问题就和你一样了,alarm和socket配合起来比较麻烦那你们现在是怎么处理的呢?现在我都不想管心跳包了,只希望待机下socket能正常收发数据,这样可有啥好办法?
我看qq在长时间待机恢复后,通知栏一下多出好多消息,我猜测他们在待机的时候也收不到数据,只不过恢复后瞬间连上服务器去取数据这几天再研究研究
4.2.2(i9500) 测试是完全正常的.
方便加下147654368指导一下吗?我这边屏幕关掉后短时间内能正常收发数据,但时间一长就不行了看了昨晚的log,ScheduledExcutorService在长时间待机后也不行。在4-5小时内1次都没执行我这里还有一个alarm版本的,这个在长时间待机后是能继续稳定执行。但用了alarm问题就和你一样了,alarm和socket配合起来比较麻烦那你们现在是怎么处理的呢?现在我都不想管心跳包了,只希望待机下socket能正常收发数据,这样可有啥好办法?
我看qq在长时间待机恢复后,通知栏一下多出好多消息,我猜测他们在待机的时候也收不到数据,只不过恢复后瞬间连上服务器去取数据这几天再研究研究http://blog.csdn.net/dreamer0924/article/details/7705144
看看这个哦,不过对我没用,这个锁是Activiy,我程序是后台程序,一个service
你研究的怎么样了?
加个Q哇