Android的AsyncTask和数据存储

来源:互联网 发布:sam软件和au 编辑:程序博客网 时间:2024/06/06 00:25
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文件夹中的文件


手机目录中的文件的读写


















0 0
原创粉丝点击