android开发中遇到的问题

1、将清单文件中的android:allowBackup="true"设置为false,其实设置为false也是Alibaba出品的Android开发规则里要求的,但出现了"Manifest merger failed with multiple errors, see logs"的错误。

2、主module中的类引用子module中导入的第三方库,引用不了,因为子module在导入第三方库时,使用了implementation,该关键词引入的库只能在本module中使用,要使用Api关键词才能被引用该module的其它module使用。

3、viewpager+fragment,fragment个数是动态改变的,此时ViewPager适配器继承FragmentStatePagerAdapter,而不是FragmentPagerAdapter,并重写getItemPosition方法,如下:

   
     @Override
    public int getItemPosition(Object object) {
        return PagerAdapter.POSITION_NONE;
    }

4、Application通过实现Application.ActivityLifecycleCallbacks接口,可实现判断app是否处于用户不可见状态,比如点击home键退出到了后台。

5、Can not perform this action after onSaveInstanceState,
情景:从A页面跳转到B页面执行操作,然后返回立即弹出对话框(继承自DialogFragment)、发生此异常,主要由于A页面执行了onSaveInstanceState方法,
返回时还未来得及执行onResume方法就先弹出对话框,使用showAllowingStateLoss方法。

6、安装apk后第一次打开进入主页,点击home退回桌面,再次点击apk图标会再次启动欢迎页面。解决方法: 在欢迎页的onCreate方法super.onCreate(savedInstanceState)后面调用下面代码

if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
    finish();
    return;
}

7、fragment中有viewpager,左右切换的时候会存在切换卡顿,页面加载不出来,排除数据加载的问题,ViewPager适配器构造方法中的FragmentManager请使用getChildFragmentManager()

PagerAdapter adapter = new MyPagerAdapter(getChildFragmentManager(), tabs, fragments);

8、项目中id定义尽量不要一样,有一次项目中一个线性控件使用了一个很多地方都引用的id名称,导致该控件setVisible的时候显示不出来。

你可能感兴趣的:(android开发中遇到的问题)