实习笔记17.07.19

  1. Android4.4以后不允许非系统应用发送系统广播,所以更新媒体库的广播Intent.ACTION_MEDIA_MOUNTED 在4.4之后无效
  2. Android多媒体数据不是从文件系统中取?是从多媒体数据库中取? 这二者有什么区别?

Android系统在启动的时候会启动MediaScannerService扫描系统上的多媒体文件,然后将这些多媒体文件的信息加入到多媒体数据库中,应用程序要取得这些多媒体信息就是从这个多媒体数据库里面去取的,并不是从SD卡中取。也就是说,如果开机后增加或删除了一些多媒体,这个多媒体数据库是不会自动刷新的。

  1. 更新媒体数据库时,使用 MediaScannerConnection.scanFile(this, new String[] {"文件全路径"}, null,null);
intent.setData(Uri.fromFile(new File(“文件路径,包括文件名”)));
context.sendBroadcast(intent);```都只更新所在数据库中文件信息的列,与之相关的相册信息不会更新

4. 调用相机拍摄照片返回照片列表显示界面时不能更行列表,重新选择相册才可以更新。但这两个都是用同一个显示逻辑,为什么?
拍摄照片返回并读取,涉及到以下过程 ---调用相机,设置存储路径,照片文件存储,扫描照片,加载到媒体库。扫描 MediaScannerConnection是异步操作,如果在扫描还没有完成(也就是照片信息没有加载到媒体库中)就读取显示照片,当然不能找到。
【经验教训】当从网络上查找到新的方法解决需求时,最好看一下这个方法各个参数的意义,这样可以根据实际需求应用,如果有时间看看其他重载方法更好。
5. fragment的使用
(1)extends Fragment和 extends  FragmentActivity有什么区别
(2)android.app.Fragment,因为我们的程序是面向Android 4.0以上系统的,另一个包下的Fragment主要是用于兼容低版本的Android系统
(3)activity.xml中放置一个FrameLayout,代码中用fragment进行替代
(4)fragment之间中进行消息传递
(5)activity和fragment传递消息
(6)activity调用fragment的UI
(7)fragment调用activity的UI

6.接口定义的一般方法:例:A中进行接口B定义:
Class A{


void 调用方法(B  b){
this.b=b;
...
***b.接口方法(传入参数);***

}

interface B{
 接口方法
}

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,539评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,256评论 19 139
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,751评论 0 17
  • 自花园中将它偷摘回家 已有数日 勤于换水 多是为了弥补剥夺它生命的内疚 数日时光 它已不再鲜活 枯留枝叶和干燥的花...
    陌上花开_ab82阅读 109评论 0 2
  • 唐永斌阅读 98评论 0 0