项目坑
2016-03-31 02:07
246 查看
当程序进入后台的时候,程序所在的进程就会变成不可见进程,进程可能会被回收,那么在程序中如果使用Application进行传递对象的时候,再调用对象中的方法,可能会报空指针;
**解决办法:1.判断Application是不是为null,要是为空的话,不能再去调用其中的方法,特别是即时通讯这种需要长连接的应用,在用Application传输连接对象的时候就有可能出现这种现象(一般在Application中只传递一些字符串信息).如果为null的话,就要和服务器重新连接一次,重新获取连接对象
2.即时通讯中要是想保存连接对象实例的话,可以在服务中进行,服务可以被多次onStart(新版本会先调用onstartcommond()方法<在这个方法中可以设置服务为前台服务,避免被杀死>;如果这个方法里继承super的话,自己才会去调用onstart方法,否则不会调用onstart()方法),可以在这两个方法中进行连接对象的获取,但一个服务只能被bind一次,所以不能在bind中进行**
**解决办法:1.判断Application是不是为null,要是为空的话,不能再去调用其中的方法,特别是即时通讯这种需要长连接的应用,在用Application传输连接对象的时候就有可能出现这种现象(一般在Application中只传递一些字符串信息).如果为null的话,就要和服务器重新连接一次,重新获取连接对象
2.即时通讯中要是想保存连接对象实例的话,可以在服务中进行,服务可以被多次onStart(新版本会先调用onstartcommond()方法<在这个方法中可以设置服务为前台服务,避免被杀死>;如果这个方法里继承super的话,自己才会去调用onstart方法,否则不会调用onstart()方法),可以在这两个方法中进行连接对象的获取,但一个服务只能被bind一次,所以不能在bind中进行**
相关文章推荐
- arcgis for android 无法加载本地jpg影像解决办法
- QT18 how to link QListView with sqlite Database values
- 面向对象编程的原则
- 设计模式之 抽象工厂模式的扩展(C++实现)
- Java并发编程:volatile关键字解析
- Qt17 load sqlite table data to qtableview
- 转:典型错误:locale.Error:unsupported locale setting
- android studio 使用技巧
- gcc,gdb,makefile
- Two Sum
- 导入内容错误
- linux环境变量
- Java并发编程:深入剖析ThreadLocal
- LeetCode Isomorphic Strings
- QT16 delete data from sqlite database with pushbutton
- web pack的使用事项
- CentOS引发的MySQL问题
- BAT MYSQL BACKUP AND ARCHIVE WITH WINRAR
- 在Windows下安装64位压缩包版mysql 5.7.11版本的方法
- mac下修改环境变量