不可不知的android开发冷知识6
2016-11-09 21:41
204 查看
1、AsyncTask是获得后台线程的最简单方式,但它基本上不适用于重复且长时间运行的任务,比如后台下载的图片如果过大,推荐用HandlerThread代替,原因是自Android3.2版本开始,AsyncTask不再为每一个AsyncTask实例单独创建一个线程。而是使用一个Executor在单一的后台线程上运行所有AsyncTask的后台任务。这意味着每个AsyncTask都需要排除逐个运行,显然,长时间运行的AsyncTask会阻塞其他AsyncTask。
2、在调用系统相机拍照片时,如果指定了照片的输出路径,则在onActivityResult中只会返回requestCode和resultCode,intent中的data是null.
3、Android路径path转换为Uri:Uri uri = Uri.fromFile(new File(path)).
4、获取Android运行时最大内存限制:
不同的机器设备可能返回的运行内存大小会不一样,一般是16M,有些会24M或更大,因此应用需要内存比较大时,需要判断一下。
5、Eclipse中导入别人工程时常会出现“unable to resolve target android-XX”或者满屏的错误而却又提示不出哪里错误的问题,这是因为android编译环境不对应导致的。解决的方法是在当前环境下随便新建一个工程,查看工程的project.properties或default.properties文件,找到target=android-xx。然后将此版本的target=android-xx替换到出错工程的project.properties的target-xx中即可。
6、获取某段音频的长度可以用以下两句代码:
7、Eclipse中常常需要查看某个变量在哪里使用,这里有个简便的方法让需要查看的变量高亮显示。打开Eclipse中的Windows->preferences->java->Editor->MarkOccurences。设置后只需要双击某个变量,那么所有有该变量的地方就会和其他变量区分开来。
8、打开系统图片框时使用intent = new Intent(Intent.Action_GET_CONTENT)打开时,在有的设备上会发现在onActivityResult中的intent返回的路径获取不到图片。这是因为设备上的系统版本不一样造成的。解决的方法是在代码中添加版本判断:
2、在调用系统相机拍照片时,如果指定了照片的输出路径,则在onActivityResult中只会返回requestCode和resultCode,intent中的data是null.
3、Android路径path转换为Uri:Uri uri = Uri.fromFile(new File(path)).
4、获取Android运行时最大内存限制:
ActivityManager manager = (ActivityManager)getSystemService( Context.ACTIVITY_SERVICE); int maxMenory = manager.getMemoryClass();
不同的机器设备可能返回的运行内存大小会不一样,一般是16M,有些会24M或更大,因此应用需要内存比较大时,需要判断一下。
5、Eclipse中导入别人工程时常会出现“unable to resolve target android-XX”或者满屏的错误而却又提示不出哪里错误的问题,这是因为android编译环境不对应导致的。解决的方法是在当前环境下随便新建一个工程,查看工程的project.properties或default.properties文件,找到target=android-xx。然后将此版本的target=android-xx替换到出错工程的project.properties的target-xx中即可。
6、获取某段音频的长度可以用以下两句代码:
MediaPlayer mp = MediaPlayer.create(context,Uri.parse(path)); int duration = mp.getDuration();
7、Eclipse中常常需要查看某个变量在哪里使用,这里有个简便的方法让需要查看的变量高亮显示。打开Eclipse中的Windows->preferences->java->Editor->MarkOccurences。设置后只需要双击某个变量,那么所有有该变量的地方就会和其他变量区分开来。
8、打开系统图片框时使用intent = new Intent(Intent.Action_GET_CONTENT)打开时,在有的设备上会发现在onActivityResult中的intent返回的路径获取不到图片。这是因为设备上的系统版本不一样造成的。解决的方法是在代码中添加版本判断:
if(Build.VERSION.SDK_INT < 19){ intent = new Intent(Intent.ACTION_GET_CONTENT); }else{ intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore .Images.Media.EXTERNAL_CONTENT_URI); }
相关文章推荐
- 不可不知的android开发冷知识3
- 不可不知的android开发冷知识1
- 不可不知的android开发冷知识5
- android开发不可不知的UI知识
- 不可不知的android开发冷知识8
- 不可不知的android开发冷知识4
- 不可不知的android开发冷知识7
- 不可不知的android开发冷知识2
- [android]UI设计师不可不知的安卓屏幕知识
- [Android Pro] UI设计师不可不知的安卓屏幕知识
- Android工程师不可不知的安卓屏幕知识(原创)
- Android屏幕适配-UI设计师不可不知的安卓屏幕知识
- android 开发中不可不知的技巧
- android 开发中不可不知的技巧
- android开发新手不可不知的10大严重错误
- android开发新手不可不知的10大严重错误
- Android Widget小组件开发(一)——Android实现时钟Widget组件的步骤开发,这些知识也是不可缺少的!
- Android设计-UI设计师不可不知的安卓屏幕知识
- android 开发中不可不知的技巧
- android 开发常用的不可不知的几个网站