当前位置:  编程技术>移动开发
本页文章导读:
    ▪关于ListView中notifyDataSetChanged()刷新数据不更新缘故        关于ListView中notifyDataSetChanged()刷新数据不更新原因 使用Listview的时候: 当要动态显示更改后的数据(例如数据库改动), 很多人应该都用过notifyDataSetChanged();这个方法来刷新Listview,显示改后的.........
    ▪ 异步任务类AsyncTask上分析        异步任务类AsyncTask下分析 <!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } --> 一. 异步任务   异步任务可以适当的/ 易用与UI 线程当中,这个类允许执行后台操作,并在不.........
    ▪ 磨刀不误砍柴功:App开发者必备的营业、原型、UI设计工具整理       磨刀不误砍柴功:App开发者必备的运营、原型、UI设计工具整理 参考:http://tech2ipo.com/54655 移动应用开发者们,Attention please!在接下来的内容里,我们将介绍一些能够提高你们的应用的知.........

[1]关于ListView中notifyDataSetChanged()刷新数据不更新缘故
    来源: 互联网  发布时间: 2014-02-18
关于ListView中notifyDataSetChanged()刷新数据不更新原因
使用Listview的时候: 当要动态显示更改后的数据(例如数据库改动), 很多人应该都用过notifyDataSetChanged();这个方法来刷新Listview,显示改后的数据.

这时候就要注意了:
                 ......
                 private ArrayList<HashMap<String, Object>> usersList;
                 ......
                 usersList= query(......);     //根据查询函数获取一个ArrayList并赋值给绑定到Adapter的数据源usersList
                 sAdapter.notifyDataSetChanged();
                 ......

           如果你也是:   上面这种形式去刷新ListView的数据的话, 是不可以更新的. 必须改成如下形式:

                 ......
                //usersList= query(......);   
                 usersList.clear(); 
                 usersList.addAll(query(......));
                 sAdapter.notifyDataSetChanged();

///////////////////////////////////////////////////////////////////////////////////////

         原因是:    sAdapter会通过usersList获取List中的内容。但是实际上可能(也应该)是,在调用super(MyActivity.this, R.layout.item, usersList)时sAdapter保存了usersList指向原List(假设为List a)的引用,在调用query函数之后,usersList指向了一个新的List(List b)。但是在调用notifyDataSetChanged()时,sAdapter会跟据保存的引用(即指向List a的引用)去更新,因此当然还是原来的结果,不会进行更新。


如果大家也出现这种情况可以使用后者去刷新ListView, 应该就没问题了



    
[2] 异步任务类AsyncTask上分析
    来源: 互联网  发布时间: 2014-02-18
异步任务类AsyncTask下分析

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->

一. 异步任务

 

异步任务可以适当的/ 易用与UI 线程当中,这个类允许执行后台操作,并在不操作线程和handler 的情况下将处理后的数据返回给UI 线程。

异步任务的设计是线程类(Thread )和Handler 类的一个辅助类,该类并不构成通用线程框架。异步任务建议在处理耗时较短的操作上使用(以秒单位的操作上),如果需要线程需要处理耗时较长的操作,建议使用java 中java.util.concurrent 包中的Executor ,ThreadPoolExecutor 和FuturTeask 类。

异步任务类是个抽象类,使用时必须使用子类,并在子类中必须重写doInBackground() 方法。

 

(1 )当异步任务执行过程中,可以分为下4 步:

 

1.onPreExecute()

异步任务开始执行时直接调用这个方法。(即execute() 调用后)这个方法里功能通常所让UI 中显示进度条。

 

2.doInBackground(Params …)

该方法在onPreExecute() 执行完后直接执行,UI 中的参数直接传递到这个方法中,参数被处理后有这个方法传递给最后的一个方法(onPostExecute() 方法)。同时在处理过程中通过调用publishProgress() 方法可以,引发onProgressUpdate 方法的调用

 

3.onProgressUpdate(Progress …)

更新UI

4.onPostExecute(Result)

后台处理完成后执行该方法。后台数据传递给该方法。

 

(2 )取消任务

在任何时候只要执行cancel(boolean) 方法,当前任务就会被取消,随后引发isCancelled() 方法的执行,该方法返回true.isCancelled() 方法执行之后,任务不再执行onPostExecute() ,而是执行onCancelled(Object) 方法。

 

注意:

1. 异步任务在UI 线程中被声明。

2. 异步任务在UI 线程中被启动执行。

3. 不需要手动调用onPreExecute()/onPostExecute()/doInBackground() 等方法。

4. 异步任务只能启动一次,试图启动两次会抛出异常。

 

参数的类型

AsyncTask<Params, Progress, Result>

 

1.Params 由UI 线程传递给后台操作的数据类型(即execute() 方法的参数类型)

2.Progress 后台处理过程中的数据类型(即publishProgress() 和onProgressUpdate 参数接受的类型)

3.Result. 后台处理后结果的返回类型。

这些内容都是帮助文档的内容。有不准确的地方还请指出来。


    
[3] 磨刀不误砍柴功:App开发者必备的营业、原型、UI设计工具整理
    来源: 互联网  发布时间: 2014-02-18
磨刀不误砍柴功:App开发者必备的运营、原型、UI设计工具整理

参考:http://tech2ipo.com/54655

移动应用开发者们,Attention please!在接下来的内容里,我们将介绍一些能够提高你们的应用的知名度和品质水平的工具。

仔细看看,下面这些工具你们都知道吗,用过吗?如果你还不知道,或许可以尝试一下。

一、运营类

1. APPVIEW,网址:http://lab.hakim.se/appview/

帮助iOS 应用开发者追踪所有地区App Store最近的用户评论,可以按时间、评分、地区排序,缺点是可能更新较慢,评论不全。

2. AppBrain,网址:http://www.appbrain.com/  

可以在此查看Android应用在应用商店的用户评论,更新及下载量变化。

3. appFigures,网址:https://www.appfigures.com/

优点:功能很全,授权后可以查看app的销售、iAds、排名、评论信息,可以以可视化的图表形式展示,支持AppStore与Google Play。缺点:免费用户功能较少。

4. App Annie,网址:http://www.appannie.com/

很强大的工具,但是部分功能需要免费注册后登录才能使用,可以用来查看每天的排名及历史变化信息,是否被各地区的App Store推荐以及获得推荐的历史记录等信息。

5. XYOLOGIC,网址:http://xyologic.com/#

可以查询Android、iOS、WP7甚至GoogleTV的app信息,有模糊的总下载量及当月下载量 ,网站上显示有BlackBerry的数据,但目前尚不可用。

6. Flurry,网址:http://www.flurry.com/

这是目前比较有名的一家了,很多企业的分析数据都来自这家网站。

二、原型制作类工具

1. Axure RP,这是我最熟悉的一个原型设计软件,也是windows上目前最常用的原型设计软件了,简单易用,上手快,功能强大。国内已有许多视频教程,这里送上中文汉化包下载地址:http://www.axure.us/283/

2. Pencil Project,是一个比较小的工具,firefox浏览器的插件,安装地址:https://addons.mozilla.org/en-US/firefox/addon/pencil/ (记得使用firefox浏览器)

3. OmniGraffle,这个软件只有Mac版本,但是可以用它制作出丰富绚丽的界面,值得尝试一下。下载地址:http://www.omnigroup.com/products/omnigraffle/ 也可以在Mac App Store下载。

4. MockingBot,这是一个在线的iOS产品原型设计工具,有免费版本的也有两种付费版本的,注册后即可使用免费版的,可根据需要选择相应版本。网站地址:https://mockingbot.com/

三、移动产品交互设计素材类

1. Mobile UI Patterns,可以按照部件类型进行查找,种类比较齐全。网址:http://mobile-patterns.com/

2. Inspired UI,也可以按所需部件类型进行查找,网站风格比较清新。网址:http://inspired-ui.com/

3. Lovely ui,多整理收集了不少UI素材图片,有分类标签。网址:http://www.lovelyui.com/

4. Mobile Design Pattern Gallery,这个网址的确比较长...但内容还不错,但是量不多。此外网站还介绍了一本叫做《Mobile Design Pattern Gallery》的书,也许对开发者有用。网址:

 http://www.mobiledesignpatterngallery.com/mobile-patterns.php

5. pttrns,网站提供一些比较精美的大图,内容也还不错。网址:http://pttrns.com/

6. Patterns of Design,主要提供iPhone和iPad两个平台的素材,网址:http://www.patternsofdesign.co.uk/

7. 4ourth Mobile Design Pattern Library,我只看到网页顶端写着“mobile patterns wiki”,具体如何,我也不懂,感兴趣可以去看看。网址:http://4ourth.com/wiki/Index

8. android pttrns,看名字就猜到主要是为Android平台收集的。网址:http://androidpttrns.com/

工欲善其事必先利其器!以上介绍的这些开发运营工具都是我从各个地方整理而来的,希望对移动开发者们有所帮助。


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3