首先,在用viewpager做不同的Fragment进行切换(不是自己写,只是修改前安卓的代码),自己加了一个新的Fragment进去(这个是老板的需求),然后很开心的把fragment加到存fragment的list当中,我以为这样子就可以了,然后运行程序,然后出现了。。。程序崩溃了,崩溃了。。。可是,哪里不对吗?看了好几遍,发现没有地方不对啊!!!我怎么办?只好去求助前安卓,然后他告诉我。。。
解决方法:因为在FragmentPagerAdapter里面的instantiateItem方法有一个当(position == 2)的时候要做评论的fragment的相应的操作。当时我把下载的fragment的位置加载了第二个,所以
AnchorMessageFragment anchorMessageFragment = (AnchorMessageFragment) object;
这行代码就会把A南充人DownloadFragment赋值给AnchorMessageFragment导致出错,当然,他也说了这样子做不是很好,如果你继续加fragment那到时候还得改,于是,他说变成这样子做会比较好
Object object =super.instantiateItem(container,position);
if(objectinstanceofAnchorMessageFragment){//自己的代码}
这样子就不用每次都去修改position所等于的值。顺带说一下super.instantiateItem(container,position);这个方法应该是获取当前的fragment吧。
第二个问题:还是继续做在做自定义的MyReclyView的时候,代码改改改,然后发现自己新增的fragment的页面一直是空白页。(这个是前安卓解决的)
解决方法:在设置MyReclyerView的adapter的时候
@Override
public intgetItemCount() {
returndownloadedList.size();
}
这个方法返回的是0,导致数据出不来,变成了白板。
第三个问题:也就是今天在做电台的时候遇到的问题,当我把playstate的状态值改为0以后,发送广播,等到广播接收的时候发现playstate的值变成了-1,就想说为什么?我明明在发送广播之前就设置了playstate的值为0了,为什么广播接收到就变成了-1了。(前安卓解决的)
前提:电台用的MediaPlayer和新闻播报的MediaPlayer不一样。
解决办法:我在发送广播的之前还把新闻的MediaPlayer stop了,然后这只playerState的值,然后再发送广播。所以,当我设置值了以后和接收到广播这中间,刚好新闻的MediaPlayer调用了MediaPlayer.OnErrorListener和MediaPlayer.OnCompletionListener这两个方法,在这两个方法中都把playState设置成了-1,所以就会出现,我明明将playState设置成0,但是还是被变成-1。最后,我把设置状态改成了在电台开始播放的时候设置,这样子就不会出现我设置状态值被修改了的情况。
第四个问题:做电台的时候,不知道为什么老是会出现
Fatal signal 6 (SIGABRT) at 0x00002eb8 (code=-6), thread 12437
这样子的错误,百度查了一下,有说可能是同步的问题,于是,我把有用到线程的地方都同步锁了,但是发现还是没有用的样子。继续百度查了,又有一个说是因为资源没有释放的原因。想了一下,好像是的。
解决方法:出现这个问题的时候百度记载了两个会出现这种情况的问题,一个就是多线程的问题,另外一个是资源没有被释放。后来发现我的是资源没有释放的问题。
啊。。终于把这几天出现的BUG,在自己没有能力解决的情况下问别人或者百度解决了,害怕自己会忘记了。所以,还是继续写一篇BUG日志吧。以后可能再遇到就可以自己找这边解决了。= = 下午一直在用脑,所以现在肚子好饿啊。嗯,反正待会就可以吃饭了。。可是还是好饿。。。。