杭州Android培训
达内杭州Android培训中心

18357109557

热门课程

Android中的常见问题和解决方法(2)

  • 时间:2016-01-27
  • 发布:杭州android中心
  • 来源:慕课社区


    杭州达内Android培训专家总结一下Android中的常见问题,并给出相应的解决方法。

一、ViewPager+Fragment动态增删缓存问题

    产生原因:

    我们在开发中会常常用到ViewPager+Fragment,有时候可能会有这样的需求,需要对ViewPager中的内容进行动态的增删管理,但是我们都知道ViewPager为了保证滑动的流畅性,viewpager在加载当前页的时候已经将pager页左右页的内容加载进内存里了,所以此时我们不进行任何处理的话,是无法达到我们预期的效果的。

    解决方案:

    1.将FragmentPagerAdapter 替换成FragmentStatePagerAdapter,
因为前者只要加载过,fragment中的视图就一直在内存中,在这个过
程中无论你怎么刷新,清除都是无用的,直至程序退出; 后者可以满足我们的需求。 

    2.我们可以重写Adapter的方法--getItemPosition(),让其返回PagerAdapter.POSITION_NONE即可。

以下为引用内容:

    @Override
    public int getItemPosition(Object object) {
        // TODO Auto-generated method stub
        return PagerAdapter.POSITION_NONE;
    }

    到这一步我们就可以真正的实现随意、彻底删除viewpager中的fragment,随意增删。

二、善用Dialog

    一些交互简单、或者只是展示功能的页面,如果使用一个Activity来显示的话,过于繁琐,开销也很大,使用Fragment的话,蛋疼的生命周期也不好处理,此时使用一个全屏的Dialog来模拟一个Activity就是一个不错的选择。

三、Splash页面那点事

    几乎每个页面都会有一个Spalsh页,通常我们会用一个Activity加载一张全屏的背景图,或者放一个app的logo,展示2秒之后,跳转到登录或者主页面,期间可能会做一些数据初始化,检查更新等操作。达内Android培训专家指出,可以利用一个Dialog模拟一个Splash页面,2秒之后dismiss掉这个Dialog,而检查更新,初始化数据等操作就放到MainActivity中。或者使用Fragment替代SplashActivity等等方法, 都可以达到Splash页的相同效果。

四、善待内部类

    在开发中,我们会经常用到内部类,内部类的出现,解决了Java只能单继承的局限性,使得开发能更加灵活。但如果内部类用的不好,就会出现Android Developer的噩梦。为什么呢?因为内部类持有了外部类的引用,当你在一个Activity中使用的内部类,当Activity销毁时,你的内部类没有释放,就会造成这个Activity无法被GC回收,因为内部类中持有了Activity的应用。

五、library那些事

    当我们引入一个依赖库时,依赖库中一般都会自带一个support v4的包,这个v4包的版本,和我们创建工程时的版本一般情况下是一致的,但是一旦我们自己工程的v4包的依赖库中的v4包中的版本不一致时,一大推莫名其妙的错误日志就会接踵而来。此时的处理方法也很简单,由于v4包都是向下兼容的,只需要保持依赖库的版本和我们自身项目的版本一致即可。





原文链接:http://www.imooc.com/article/4277
上一篇:达内唐亮:达内云计算、大数据培训的三大优势
下一篇:Android开发者将面临八大挑战

恭喜达内获得《产学合作协同育人项目合作伙伴奖》

迷茫小伙参加达内网络营销培训,获8w年薪入职哈道盟

中传学子参加达内Java培训,转身成为Java工程师月薪12.5K

职场求突破参加达内网络营销培训,获10万年薪成为营销达人

选择城市和中心
贵州省

广西省

海南省