呼呼~~今天写流水笔记稍微多点时间,复习一下今天的流水~~
一、观看慕课网的视频小知识点:
1、TextView走马观灯的效果:水平滚动(可以滚动指定次数或无限次滚动)
设置android:ellipsize属性;
设置android:marqueeRepeatLimit(循环显示的次数);
设置android:focusable属性;
只有处于焦点状态的TextView控件才会有走马灯效果
2、区分assets和res文件夹中资源的利用情况和资源情况
使用原始资源时有两种方式:
位于res/raw目录下,通过R.raw.<>;来引用;res文件夹下的资源大小是算在APK中的;
位于/assets/目录下,采用getAssets()方法获取AssetMessager这个管理类,调用其方法来进行资源的调用;openFd(),open();
3、框架:
这个稍微深一些,只做了一个了解,引入两个.jar包在项目中,会达到非常方便的效果;
可以采用@EActivity这种注释方式进行提升效率、代码简洁、统一管理、代码复用这些好的效果;不过由于新手暂时基本程序还未掌握,熟练之后才可以用;
那些程序可以做成框架?:
网络代码;图片缓存模块;数据库模块;UI基础界面;
4、APP签名打包
为了区分相同package相同时带来的下载相同名称APP到手机上,覆盖掉别人的同名APP,起到区分、秘钥的作用;
5、AsyncTask异步加载的详细学习:
AsyncTask<params,progress,result> 可自定义这些参数进行设置;
因为Activity单线程模式;耗时操作阻塞UI线程造成用户体验不佳;-->常用方式:
多线程/线程池 or AsyncTask
AsyncTask-->子线程更新UI;封装、简化异步操作
在UI线程中取得AsyncTask实例,调用其excute()启动;
在新建类AsyncTask子类继承,重写四个方法,系统会自动调用;
onPreExcute();
doInBackground();
onProgressUpdate();
onPostExcute();
其中只有doInBackground()运行在子类的线程中,其他三个都在UI主线程中调用,因此可以改变UI;
每次AsyncTask只能调用一次,否则会出错;
如果需要更新,可将AsyncTast的生命周期绑定到Actvity绑定:
mTask.cancel(true)只是传入取消的请求,并不会中断线程(安卓一般不能随意改变线程的)
需要进一步再doInBackground中判断if(iscancelled){break;};这样才能在返回键按下时取消子线程的进度初始化;
二、对书上的内容进行查看
今天本来是想进一步开始看HTTP的,不过又被其他的挡住了
1、contentProvider进行自定义的使用
用法:此处最好查看笔记上的示意图;A应用想对B应用进行CRUD操作;
我们会在两个地方使用带它,主要是第一种情况:
第一种情况:A使用现有的内容提示器来读取和操作想对程序B中的数据;
第二种情况:创建自己的内容提示器给我们程序的数据提供一个外部访问接口;
情况一的用-->三步:
A开发一个contentProvider子类继承cintentProvider并重写CRUD四个方法;
在A的menifest文件中配置注册:name; authouties(uri); android:exported="true"这样才能被外面程序调用;
在B应用中用getContentResolver()获得ContentResolver对象,该对象调用CRUD方法即间接的调用A中的方法;
2、还有高级一点的工具类:UriMatcher工具类; ContentUris工具类 ;
3、对系统中的contentProvider进行访问:
这里需要回顾在SQLIte中的例子,生词本,完成本次程序(------>明天完成这两块!!!)
三、GPS应用开发:
刚才完成了阅读,明天仿真一下;
三个核心API:LocationManager、LocationProvider、Location
步骤:
1、获取LocationManager对象,三种方法
2、获取定位信息
3、临近警告
这个定位是为了后面,百度地图、谷歌地图应用的准备工作。
明天不要太慌,进行上面二、三的操作:生词本+GPS~~~
如果可以进行http的理论加视频学习~~~