Java类中打印this导致手机不能启动问题
2011-11-04 09:05
288 查看
问题1:发现在Handler中加类似Log.d(TAG,"create handler 1 "+ this);导致系统不能启动。
问题2:在Handler.toString中加打印this语句导致不能启动
public class Handler { public Handler() { if (FIND_POTENTIAL_LEAKS) { final Class<? extends Handler> klass = getClass(); if ((klass.isAnonymousClass() || klass.isMemberClass() || klass.isLocalClass()) && (klass.getModifiers() & Modifier.STATIC) == 0) { Log.w(TAG, "The following Handler class should be static or leaks might occur: " + klass.getCanonicalName()); } } mLooper = Looper.myLooper(); if (mLooper == null) { throw new RuntimeException( "Can't create handler inside thread that has not called Looper.prepare()"); } mQueue = mLooper.mQueue; Log.d(TAG,"create handler 1 "+ this); //本行代码导致系统不能启动 mCallback = null; } @Override public String toString() { return "Handler (" + getClass().getName() + ") {" + Integer.toHexString(System.identityHashCode(this)) + "}"; }Answer: Unknown
问题2:在Handler.toString中加打印this语句导致不能启动
@Override public String toString() { Log.d(TAG,"this="+this); return "Handler (" + getClass().getName() + ") {" + Integer.toHexString(System.identityHashCode(this)) + "}"; }Answer: 打印this导致toString被调用,因此会出现循环调用。
相关文章推荐
- elasticsearch出现TranslogCorruptedException导致shard不能启动的问题修复
- 解决win7没有找到suite objects.dll 导致rational rose不能启动的问题
- AndroidSDK安装路径导致模拟器不能成功启动问题
- ubuntu升级导致virtualbox不能启动问题
- SVN 导致 Eclipse 失败退出,并且不能再启动的问题
- windows下nginx的安装、使用及80端口被占用导致nginx不能启动问题的解决
- Android手机ROOT之后更改字体文件导致无法启动的问题
- 修复MongoDB数据库,解决因Unclean Shutdown导致服务不能启动的问题
- 解决华为手机部分机型不能打印Log问题
- ASE15.0.3升级时导致数据库不能启动问题的解决方法
- 修复virtualbox中丢失xml文件导致不能启动虚拟机的问题
- 关于ResourceLink导致Tomcat不能启动的问题
- c#扩展SPRING,配置里有不存在的业务系统xml导致不能启动问题,把配置文件里有重复的服务ID找出来并写入到日志
- 解决因手机客户端android网络不稳定而导致asmack不能自动重连接openfire的问题
- 华为手机不能打印Log日志问题
- ASM路径问题导致数据库不能正常启动 -- 报:ORA-03113: end-of-file on communication channel
- sangoma数字卡+elastix1.6 导致asterisk不能启动的问题
- Daemon Tools 4.x 或"SPTD.SYS"导致Windows不能启动的问题的解决方案
- 手机客户端android网络不稳定而导致asmack不能自动重连接openfire的问题