小部件添加时通过SharedPreferences存储一个状态表示是否添加,创建时状态为true,被销毁时状态为false。
在Activity中getSharedPreferences判断小部件是否已添加,如果添加则执行更换图片逻辑,不添加则不执行逻辑。
结果在小部件销毁后点击activity中的更换图片按钮发现状态居然为true,而且意外排了一个bug,问题来了,为什么小部件销毁时候的状态不是由true到false而是仍然为true呢?
于是我在小部件添加时监听里加了一条Toast,并发现这个Toast刚显示就消失了,而且小部件也没有加载出来,很显然,这是因为代码出错导致小部件所处服务进程崩溃了,于是我又仔细检查代码,最终定位了是存图片的数组下标越界。。。
写个笔记长记性,这个崩溃真是添了不少麻烦,害我在activity调用、广播绑定解绑、服务启动销毁都加了一遍保存状态的逻辑
【软件崩溃时不会走到Destroy()等方法!】



