设计实现:
1,要注册网络变化广播。当接收到广播时:判断当前网络是否连接。如果连接:则从服务器获取推送信息。
http://ipjmc.iteye.com/blog/1323611
http://blog.csdn.net/veryitman/article/details/6860146
http://blog.csdn.net/chenzheng_java/article/details/6387116/#comments
http://www.th7.cn/Program/Android/201211/114007.shtml
http://blog.csdn.net/xsl1990/article/details/17029163
l碰到问题:logcat 没有输出。重启eclipse解决。
碰到问题:模拟器和eclipse失去连接。控制台没输出。 解决:控制台没有切换到android。
碰到问题:模拟器和eclipse失去连接,设备面板无模拟器。logcat没输出。解决:重启adb
当手机切换到飞行模式时,会和eclipse失去连接。
碰到问题:eclipse没有方法的具体使用描述。
碰到问题:java.net.SocketException: socket failed: EACCES (Permission denied)
解决:<uses-permission android:name="android.permission.INTERNET" />
碰到问题:返回信息乱码
解决:final String reslut = new String(baos.toByteArray(),"GBK");
碰到问题:当用户移除这个任务的时候。便没有广播监听了。
解决:改为静态注册。动态注册必须要取消注册,activity退出后就会没有。静态注册是长久地在手机内存。
动态注册onResume()时,就会检索。静态注册的程序卸载后就没有了。
http://jiangnanlove.iteye.com/blog/1333335
http://bbs.csdn.net/topics/390554908
http://www.cnblogs.com/totem1990/archive/2012/09/10/2679391.html
碰到问题:网络连接,大概有4次弹出已连接。 模拟器上是这样。真机上正常。
碰到问题:手机清理了缓存的后台应用,这个广播监听就没有了。
解决:1,不被清理。2,清理之后,再提起来。
方案二:用激光推送
碰到问题:
Invalid project description overlaps the location of another project
解决:导入工程不要选android下的Existing android code into workspac e往上面看,还有个general里,这个文件夹下有个Existing projects into workspace 选这个。
http://blog.csdn.net/napolun007/article/details/16812745
碰到问题:项目构建失败。
解决:添加上v7项目
碰到问题:unable to parse 192.168.191.2.5555 as <host>:<port>
解决:是冒号 192.168.191.2:5555
说明:经过测试,发现市面上的,微信,QQ,极光推送,百度云推送等,都没有实现 清理后台程序后,收到消息。
除了修改系统,达成个协议。 这个是不可能的。 所以这个就暂放一放。
目前的话,我们推送主要实现,就是有推送消息的时候,手机有网,程序在运行 时 弹出来推送的消息。
市面上有百度云推动,可以推送富媒体什么的,可以直接拿来用下。
自己写也成。
假如程序运行,就每60秒发送http请求获取消息。
加入比对,重复的的消息就不提示。
这种方案很不灵活。 用http,是客户端不停地获取信息。
第二种:开启socket与客户端连接。服务端向客户端发送信息。
碰到问题:java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
解决:在调用前加入Looper.prepare(),之后加入Looper.loop();
OnNewIntent
http://blog.csdn.net/java2009cgh/article/details/7891286
scrollView.fullScroll(ScrollView.FOCUS_DOWN);
http://blog.csdn.net/hanjieson/article/details/10312861
通知栏:
http://android.tgbus.com/Android/tutorial/201110/373378.shtml
碰到问题:java.lang.IllegalArgumentException: contentView required: pkg=com.example.netpush id=0 notification=Notification(pri=0 contentView=null vibrate=null sound=null defaults=0x0 flags=0x0 kind=[null])
解决:没有设置通知栏下拉的信息
http://blog.csdn.net/carterjin/article/details/7520701
加入比对。用偏好设置
http://www.2cto.com/kf/201303/193652.html