资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Android常见小问题汇总-创新互联

1  问题: 登陆页面 输入时账号时 弹出键盘覆盖 密码输入框

湘桥ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!

    期望:输入能够把输入页面顶上去。

    解决方法:Activity设置成非全屏且:android:windowSoftInputMode = "adjustResize"

2 问题:点击EditText输入两次才弹出DatePickerDialog。

    期望:点击一次弹出DatePickerDialog

    解决方法:EditText改为TextView即可。

3 问题:The content of the adapter has changed but ListView did not receive a notification

    期望:不出现该bug

     思路:   在Android开发过程中,使用了大量的ListView,发现这个错误偶尔会出现。特别是做压力测试的时候,不停的点击刷新,更容易出现这个错误。代码中已经使用了Adapter的notifyDataSetChanged()方法通知UI更新了,但是还是会出现这个错误。究其根本原因,还是线程之间同步的问题。比如,线程1更新了Adapter中的内容,却还没有来得及通知内容已经更新,就又有线程2更新了Adapter中的内容,这个时候如果线程1再通知内容更新,就会出现上述异常了。

在此提出一些解决办法:

对线程进行管理,如果当前Actitivty暂停了,及时停止这些线程。

数据更新后,要及时使用notifyDataSetChanged()方法通知UI,避免出现数据不一致的情况。

数据的更新,最好放在主线程中进行。这样可以使用同步数据更新与通知内容更新部分的代码。

最后补充一条我最终解决问题的方法:

在用到多线程的时候,可以对数据做缓存处理, 比如与ListView绑定的数据存储在ArrayList (dataList), 在线程中先将数据加入到临时ArrayList(tmpList) , 最后在调用notifyDataSetChanged()方法通知UI更新之前, 把临时ArrayList(tmpList)中的数据更新到ArrayList(dataList)中, 然后清空临时ArrayList(tmpList)数据。

参考:http://blog.csdn.net/garybook/article/details/7498342

4 问题:内存泄露

    思路:使用Memory Analyzer Tool(MAT)内存分析工具进行分析。

5  Jpush推送相关问题:

    1  关于不活跃用户:长期未打开APP,则会被Jpush标志为不活跃用户,之后不再接收推送,(除非用户主动打开APP,此句话待验证)

    2  新建的APP,所有安装用户都是活跃用户。

    3  小米的手机,普通App默认是非自启动,自启动广播也被屏蔽。

6  EditText焦点键盘弹出问题:

   取消:

                在EditText的父级控件中找一个,设置成

                android:focusable="true"
                android:focusableInTouchMode="true"

    获取:

7 在Eclipse添加Android兼容包( v4、v7 appcompat )

http://www.cnblogs.com/kissazi2/p/3644848.html

8 ScrollView 和Listview冲突的解决方案:

    http://www.xuebuyuan.com/2191777.html

9 不同版本ADT混淆方式:

参考:http://www.tuicool.com/articles/amIn6vj

    Android常见小问题汇总

10  自动开关机实现:

    http://www.cnblogs.com/melaniedeng/archive/2012/02/16/2355066.html

11  FragmentStatePagerAdapter+viewpager第二次进入该fragment不显示数据

    解决方法:

        在含有ViewPager的Fragment的onCreateView方法中添加代码:

           if (view != null) {

                    ViewGroup parent = (ViewGroup) view.getParent();

                    if (parent != null) {

                    parent.removeView(view);

                    }

                    return view;

                    }

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站名称:Android常见小问题汇总-创新互联
分享URL:http://cdkjz.cn/article/ccpcej.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220