java 守护线程在Android开发中的应用

守护线程,简单理解为主线程中,等待其他非守护线程执行结束后才结束的线程,利用这一特点,可以利用在Android开发中启动多个线程同步客户端和服务器的数据时,启动一个守护线程,等待其他同步数据的线程都结束,在其他非守护线程都结束的时候,做一些操作,比如在所有同步数据的线程都结束后,进入下一个Activity:

                    //同步头像
                    if (has_headimg.equals("Y")){
                        File headDir = context.getExternalFilesDir("head"); //初始化文件存储目录
                        File headFile = new File(headDir,gshid + ".jpg");
                        headimgDownloadThread = updateServerDataHttps.downloadFile("10014", gshid, "get_file", headFile);
                        headimgDownloadThread.join();
                    }

                    //同步地址信息
                    if (!addresses_id.equals("")){
                        addressThread = updateServerDataHttps.updateLoginAccountAddressDataToServer("12010", gshid, null, addresses_id);
                        addressThread.join();
                    }

                    //同步教学机构信息
                    if (!institutions_id.equals("")){
                        institutionThread = updateServerDataHttps.updateInstitutionDataToServer("12015", gshid, null, institutions_id);
                        institutionThread.join();
                    }

                    deamonThread = updateServerDataHttps.daemonThreadForUpdate();

//                    if (headimgDownloadThread != null){
//                        headimgDownloadThread.join();
//                    }
//
//                    if (addressThread != null){
//                        addressThread.join();
//                    }
//
//                    if (institutionThread != null){
//                        institutionThread.join();
//                    }

非守护线程先join和后join效果不同:

先join,守护线程会等到线程返回的handle都处理完成才结束

后join,守护线程只等待到同步线程执行结束,不会等到handle中方法执行结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值