Android的AsyncTask和数据存储
2015-09-09 19:37
579 查看
AsyncTask<Params,Progress,Result>
线程间通讯的工具,与Handler类似,由Android封装好的通讯工具
自带线程的异步任务类-类似于-handler+Thread
Params:参数--在调用方法的时候传入的参数,在doInBacjkground()方法中被传入
Progress:进度--一般写Integer,在onProgeressUpdate()方法中被传入
Result:返回值--doInBacjkground()方法的返回值类型,被传入onPostExecute()方法中
新建AsyncTask类AsyncTask<String,Integer,String> task=new AsyncTask<String,Integer,String>(){}会实现四个方法
1.onPreExecute方法
protected void onPreExecute(){
super.onPreExecute();
}
这是程序第一个运行的方法,该方法运行在UI线程中,并且可以对UI控件进行设置
2.doInBackground方法
protected String doInBackground(String...params){
//一般用来得到任务进行的百分比
publishProgress(50);//可传值给onProgressUpdate方法
return null;
}
这是程序第二个运行的方法,这里的String参数对应AsyncTask中的第一个参数,而String返回值对应AsyncTask的第三个参数,该方法并不运行在UI线程中,主要用于异步操作,所以在该方法中不能对UI线程中的控件进行设置和修改,但是可以调用publisPregress方法出发onProgressUpdate对UI进行操作
3.onProgressUpdate方法
程序选择性调用的方法
protected void onProgressUpdate(integer...values){
super.onProgressUpdate(values);
System.out.println(values[0]);//这里输出的是doInBackground方法中的publishProgress(50)传过来的整型数值50
}
这里的Integer参数对应AsyncTask中的第二个参数,在doInBackground方法当中,每次调用publishProgress方法都会触发onProgressUpdate方法执行,onProgressUpdate是在UI线程中执行的,所以可以对UI控件进行操作
4.onPostExecute方法
protected void onPostExecute(String result){
super.onPostExecute(result);
}
程序最后一个运行的方法,这里的String参数对应AsyncTask中的第三个参数类型,也就是接收doInBackground方法的返回值,在doInBackground方法执行结束之后运行,并且运行在UI形成当中,可以对UI控件进行设置
当以上四种方法都设置好了以后,需要AsyncTask方法的对象进行task.execute(String型参数),这个参数类型由AsyncTask的第一个参数类型决定。
Android中的数据存储
SharePreference数据存储
类似于网页中cookie,用于存放一些短小的信息。SharePreference是轻量级的存储对象,会生成一个xml文件,存放在data/data/包名/shared_prefs/自定义xml下
1.利用系统方法,获取到某个文件 SharedPreferences sp=getSharedPreferences("lanou3g", Context.MODE_PRIVATE);
生成文件的访问权限如下
2.获取编辑者对象 Editor et=sp.edit();
3.利用编辑者对象写入数据 et.putString("name","张三");
4.提交数据给SharedPreferences对象sp et.commit();
以上四步可以在手机data/data/包名/shared_prefs/下生成一个自定义的xml文件,当这个文件夹存在下面存在xml文件时,我们可以根据sp.getString("name","");的方式得到这个文件中的内容
文件存储
Sqlite数据库存储
ContentProvider数据存储
网络存储
读取raw文件夹中的文件
读取assets文件夹中的文件
手机目录中的文件的读写
线程间通讯的工具,与Handler类似,由Android封装好的通讯工具
自带线程的异步任务类-类似于-handler+Thread
Params:参数--在调用方法的时候传入的参数,在doInBacjkground()方法中被传入
Progress:进度--一般写Integer,在onProgeressUpdate()方法中被传入
Result:返回值--doInBacjkground()方法的返回值类型,被传入onPostExecute()方法中
新建AsyncTask类AsyncTask<String,Integer,String> task=new AsyncTask<String,Integer,String>(){}会实现四个方法
1.onPreExecute方法
protected void onPreExecute(){
super.onPreExecute();
}
这是程序第一个运行的方法,该方法运行在UI线程中,并且可以对UI控件进行设置
2.doInBackground方法
protected String doInBackground(String...params){
//一般用来得到任务进行的百分比
publishProgress(50);//可传值给onProgressUpdate方法
return null;
}
这是程序第二个运行的方法,这里的String参数对应AsyncTask中的第一个参数,而String返回值对应AsyncTask的第三个参数,该方法并不运行在UI线程中,主要用于异步操作,所以在该方法中不能对UI线程中的控件进行设置和修改,但是可以调用publisPregress方法出发onProgressUpdate对UI进行操作
3.onProgressUpdate方法
程序选择性调用的方法
protected void onProgressUpdate(integer...values){
super.onProgressUpdate(values);
System.out.println(values[0]);//这里输出的是doInBackground方法中的publishProgress(50)传过来的整型数值50
}
这里的Integer参数对应AsyncTask中的第二个参数,在doInBackground方法当中,每次调用publishProgress方法都会触发onProgressUpdate方法执行,onProgressUpdate是在UI线程中执行的,所以可以对UI控件进行操作
4.onPostExecute方法
protected void onPostExecute(String result){
super.onPostExecute(result);
}
程序最后一个运行的方法,这里的String参数对应AsyncTask中的第三个参数类型,也就是接收doInBackground方法的返回值,在doInBackground方法执行结束之后运行,并且运行在UI形成当中,可以对UI控件进行设置
当以上四种方法都设置好了以后,需要AsyncTask方法的对象进行task.execute(String型参数),这个参数类型由AsyncTask的第一个参数类型决定。
Android中的数据存储
SharePreference数据存储
类似于网页中cookie,用于存放一些短小的信息。SharePreference是轻量级的存储对象,会生成一个xml文件,存放在data/data/包名/shared_prefs/自定义xml下
1.利用系统方法,获取到某个文件 SharedPreferences sp=getSharedPreferences("lanou3g", Context.MODE_PRIVATE);
生成文件的访问权限如下
2.获取编辑者对象 Editor et=sp.edit();
3.利用编辑者对象写入数据 et.putString("name","张三");
4.提交数据给SharedPreferences对象sp et.commit();
以上四步可以在手机data/data/包名/shared_prefs/下生成一个自定义的xml文件,当这个文件夹存在下面存在xml文件时,我们可以根据sp.getString("name","");的方式得到这个文件中的内容
文件存储
Sqlite数据库存储
ContentProvider数据存储
网络存储
读取raw文件夹中的文件
读取assets文件夹中的文件
手机目录中的文件的读写
相关文章推荐
- android 运行时找不到id异常
- Service IntentService Android中的线程 MediaPlayer
- adt环境下,手机连接电脑测试android,logcat输出停不下来
- 解决Android使用SurfaceView播放视频结束后黑屏问题
- Android视觉规范-间距规范与文字规范单位换算(dip、sp与px)
- Android InsetDrawable
- Android Service——活动和服务进行通信
- Android JSON(Fastjson,Gson)
- 15_09_18 Android 程序结构图
- Android中自定义组合控件
- Android进程间通信之使用Messenger
- Android客户端支付宝支付
- Android入门之网络图片查看器
- Android广播传值
- Android 读取工程中的txt文件
- android中MVP模式
- DrawerLayout 抽屉效果
- web页面在android上显示bug处理
- android 地图开发之聚合,定位
- 细数Android开源项目中那些频繁使用的并发库中的类