- 博客(15)
- 资源 (2)
- 收藏
- 关注
原创 线程池踩了一个坑
new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, unit, new LinkedBlockingDeque());当线程的个数小于corePoolSize时候,有新任务 则创建线程当线程的个数等于corePoolSize而队列未满的时候 ,有新任务 就加入队列,当队列满了之后 就再创建新的线程
2017-09-18 18:55:23 497
原创 线程池的大坑啊
任务队列BlockingQueue 排队原则 1. 如果运行的线程少于 corePoolSize,则 Executor 始终首选添加新的线程,而不进行排队。 2. 如果运行的线程等于或多于 corePoolSize,则 Executor 始终首选将请求加入队列,而不添加新的线程。 3. 如果无法将请求加入队列,则创建新的线程,除非创建此线程超出 maximumPoolS
2017-09-18 18:43:31 562
原创 android打开相机拍照
方法一:// 启动相机 Intent intent1 = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent1, REQUEST_THUMBNAIL);获取照片:Bundle bundle = data.getExtras(); Bitmap bitmap = (Bitmap) bundle.
2017-09-14 16:22:01 652
转载 Git fetch和git pull的区别, 解决Git报错:error: You have not concluded your merge (MERGE_HEAD exists).
Git fetch和git pull的区别:都可以从远程获取最新版本到本地1.Git fetch:只是从远程获取最新版本到本地,不会merge(合并)$:git fetch origin master //从远程的origin的master主分支上获取最新版本到origin/master分支上$:git log -p master..origin/master //比较本地的ma
2017-09-14 14:56:37 356
原创 4G网络可用
/** * 判断当前网络是否是4G网络 * * @param * @return boolean */ public boolean is4GAvailable() { ConnectivityManager connectivityManager = (ConnectivityManager) getActivity().
2017-09-12 17:50:49 250
转载 Java线程之 InterruptedException 异常
当一个方法后面声明可能会抛出InterruptedException 异常时,说明该方法是可能会花一点时间,但是可以取消的方法。 抛InterruptedException的代表方法有:1. java.lang.Object 类的 wait 方法2. java.lang.Thread 类的 sleep 方法3. java.lang.Thread 类的 join 方法 -
2017-09-11 19:39:49 1265
原创 类的卸载
由Java虚拟机自带的类加载器所加载的类,在虚拟机的生命周期中,始终不会被卸载。Java虚拟机自带的类加载器包括根类加载器、扩展类加载器和系统类加载器。Java虚拟机本身会始终引用这些类加载器,而这些类加载器则会始终引用它们所加载的类的Class对象,因此这些Class对象始终是可触及的。由用户自定义的类加载器加载的类是可以被卸载的。
2017-09-11 10:28:15 238
转载 Java并发工具包使用指南(全)
秀才的专栏目录视图摘要视图订阅Java并发工具包使用指南(全)标签: 并发java2017-07-28 18:19 1026人阅读 评论(0)收藏举报分类: Java高级(54) 目录(?)[+]1. java.util.concurrent
2017-09-10 11:15:41 264
原创 android路径相关
内部存储路径为/data/data/youPackageName/,下面讲解的各路径都是基于你自己的应用的内部存储路径下。所有内部存储中保存的文件在用户卸载应用的时候会被删除。 一、 files1. Context.getFilesDir(),该方法返回/data/data/youPackageName/files的File对象。2. Context.openF
2017-09-07 21:08:57 196
原创 JAVA多线程之wait/notify
JAVA多线程中的 wait()方法 与 notify()/notifyAll()方法的用法。①wait() 与 notify/notifyAll 方法必须在同步代码块中使用②wait() 与 notify/notifyAll() 的执行过程③中断 调用wait()方法进入等待队列的 线程④notify 通知的顺序不能错⑤多线程中测试某个条件的变化用 if 还是用 while
2017-09-07 16:22:54 271
原创 Android开发动态的监听网络状态的变化
public class NetworkReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //**判断当前的网络连接状态是否可用*/ ConnectivityManager connectivit
2017-09-06 18:13:21 359
原创 Service Intent must be explicit
Android5.0中service的intent一定要显性声明[java] view plain copy final Intent intent = new Intent(this,BindService.class); bindService(intent,coon,Service.BIND_AUTO_CREATE) 可以将隐性调用变成显性调用
2017-09-05 11:04:55 242
原创 startService与bindService混合使用对Service生命周期的影响
一、正常情况:(1)单独使用startService():onCreate()->onStartCommand()->Service running->onDestroy()->Service shut down(2)单独使用bindService():onCreate()->onBind()->Clients are bound to service->onUnbind()->o
2017-09-05 10:58:40 414
原创 http range
1、什么是Range? 当用户在听一首歌的时候,如果听到一半(网络下载了一半),网络断掉了,用户需要继续听的时候,文件服务器不支持断点的话,则用户需要重新下载这个文件。而Range支持的话,客户端应该记录了之前已经读取的文件范围,网络恢复之后,则向服务器发送读取剩余Range的请求,服务端只需要发送客户端请求的那部分内容,而不用整个文件发送回客户端,以此节省网络带宽。2、HT
2017-09-04 17:33:14 455
原创 动态权限申请
public class MainActivity extends AppCompatActivity { 19 20 // 要申请的权限 21 private String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE}; 22 private AlertDialog dialog; 2
2017-09-01 11:07:29 818
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人