还是为了解决之前多个activity共用一个socket的问题,查资料发现单例模式可以解决。

然后写了一下单例模式的代码,调用的时候发现,调用的activity一启动就闪退,退回到最初的activity。

本来想着正向定位一下,但是又看不到调用栈,查了查找到了单步调试的方法,调试了一下,发现是每次走到socket.receive的时候就挂了,但看不到具体的原因,主要是对安卓这些调试也不熟悉。

然后请同事帮忙看了一下,一眼就看出了问题,问题在于构造函数,之前百度找的例子,构造函数是private类型的,但是我不知道为啥给他删掉了,前面就没有加类型。

没加类型的话,默认应该是protected。

参考

Java单例模式(Singleton)以及实现 - CieloSun - 博客园

为什么单例模式构造方法私有_alen1985的博客-CSDN博客

最后加了这个private问题就解决了。

但还有个问题,就是为啥加了private就好了,我目前实际上只有一处调用这个函数,不存在多线程调用冲突的可能性。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐