等待AsyncTask(Waiting for AsyncTask)
在我的应用程序中,我需要从2个不同的URL下载一些数据,然后填充列表。 为此,我创建了一个2个AsyncTask类。 第一类负责从相应的URL下载数据。 另一个负责执行上述的asyncTasks,然后在UI线程上填充列表。 我需要下载数据并行运行的任务,所以我在执行程序上执行它们。 我的问题是负责填充列表的任务在其他两个任务下载数据之前终止。 如何让该线程等待其他两个返回。 我应该在其他人身上使用.get,因为我需要它们并行运行。 我也发布了一些代码以便清楚。
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); readJsonTask task = new readJsonTask(this); task.execute(); } private class readJsonTask extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... args) { downloadUrl task = new downloadUrl(url1,"jsonData1","/sdcard/appData/LocalJson/jsonData1"); task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); downloadUrl task1 = new downloadUrl(url2,"jsonData2","/sdcard/appData/LocalJson/jsonData2"); task1.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); return "done"; } @Override protected void onPostExecute(String result) { //update UI } } private class downloadUrl extends AsyncTask<String, Void, String> { private String url; private String targetFolder; private String pathForLoad; @Override protected String doInBackground(String... args) { //download Data return "done"; } @Override protected void onPostExecute(String result) { } }
In my application I need to download some data from 2 different urls, and then populate a list. To do so I create one 2 AsyncTask classes. The first class is responsible for downloading the data from the corresponding url. The other one is responsible for executing the aforementioned asyncTasks and after that populating a list on the UI thread. I need the tasks that download data to be run in parallel so I execute them on the executor. My problem is that the task that is responsible for populating the list terminates before the other two tasks download the data. How can I make that thread wait for the other two to return. I should use .get on the others because i need them to run in parallel. I'm also posting some code in order to be clear.
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); readJsonTask task = new readJsonTask(this); task.execute(); } private class readJsonTask extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... args) { downloadUrl task = new downloadUrl(url1,"jsonData1","/sdcard/appData/LocalJson/jsonData1"); task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); downloadUrl task1 = new downloadUrl(url2,"jsonData2","/sdcard/appData/LocalJson/jsonData2"); task1.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); return "done"; } @Override protected void onPostExecute(String result) { //update UI } } private class downloadUrl extends AsyncTask<String, Void, String> { private String url; private String targetFolder; private String pathForLoad; @Override protected String doInBackground(String... args) { //download Data return "done"; } @Override protected void onPostExecute(String result) { } }
原文:https://stackoverflow.com/questions/19377331
最满意答案
您可以使用ZXing代码。
You can use ZXing code for this.
Check out DecodeHandler.java.
相关问答
更多-
try { Intent intent = new Intent("com.google.zxing.client.android.SCAN"); intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); // "PRODUCT_MODE for bar codes startActivityForResult(intent, 0); } catch (Exception e) { Uri marketUri = Uri.parse( ...
-
@smparkes我不确定QR码是否被翻转。 zxing读得很好,它不允许镜像代码(不是没有TRY_HARDER)。 是的,有效QR码的镜像永远不会有效; 轮换是。 如果图书馆一直只生成无效的QR码,我想我会感到惊讶。 QR Droid也只是基于zxing,所以如果它不顾一切地读取这些无效代码也会感到惊讶。 但是,其他一些证据表明镜像就是问题所在。 @smparkes I'm not sure the QR code is flipped. zxing reads it OK, and it does no ...
-
你看过ZXING吗 我一直在使用它来创建条形码。 您可以在比特币应用程序src中看到一个完整的工作示例 // this is a small sample use of the QRCodeEncoder class from zxing try { // generate a 150x150 QR code Bitmap bm = encodeAsBitmap(barcode_content, BarcodeFormat.QR_CODE, 150, 150); if(bm != ...
-
QR码的Foursquare(Foursquare to QR Code)[2023-10-18]
您应该使用以下链接: 四方://场地/ yourvenueID 您的场地ID是原始foursquare网站场地地址末尾的数字行。 例如在 ' https://foursquare.com/v/RUSSIANCOMPANYNAMEHAPPYCODING/4d19f75f401db60ce632fea4 ' '4d19f75f401db60ce632fea4'是ID。 You should use the link like: foursquare://venues/yourvenueID Where your ... -
用于android的QR码阅读器(QR Code reader for android)[2023-12-25]
首先,它确实需要条形码扫描仪应用程序。 不确定是否能回答你的问题。 其次,您的应用程序崩溃,因为您没有捕获ActivityNotFoundException。 在条码扫描器开源项目ZXing中,你会发现一个模块android-integration,它具有完整的正确源代码。 您将找到Barcode Scanner的竞争源,您可以使用它来构建扫描到您自己的应用程序。 否则你真的想与Intent的Barcode Scanner集成。 这更容易。 First, it really requires the Bar ... -
您可以根据字符串创建二维码,以便您可以生成诸如“静音模式”等字符串的二维码。并且,当扫描代码时,可以使扫描的字符串相应地更改音频设置。 以下是如何在ZXing Library的字符串中创建一个QR码: Android使用ZXing生成QR码 以下是关于如何更改音频设置的教程: https://www.tutorialspoint.com/android/android_audiomanager.htm 你可以结合这两个来创建你想要的应用程序。 You can create QR codes off stri ...
-
ZXing是好的和有用的库。 我认为你正在混淆图书馆本身以及由该项目制作的应用程序 ZXing is good and useful library. I think you are mixing up library itself and application which is also produced by the project
-
您可以使用ZXing代码。 查看DecodeHandler.java 。 You can use ZXing code for this. Check out DecodeHandler.java.
-
您可以为应用创建一个活动,并指定它可以处理自定义URI方案:从根本上说,QR码只编码一串字符,如zxing wiki中所述 (例如,前缀“tel:”表示读者是电话号码,读者应采取适合电话数据的操作)。 所以你真正需要做的只是使用ZXing将QR码解码为字符串并进行解析。 Fundamentally QR Code just encode a string of characters, as explained in the zxing wiki (for example, the prefix "tel:" indicates to the reader that ...
相关文章
更多- 为什么多线程等待和唤醒报错 不成功呢
- 一步一步掌握线程机制(五)---等待与通知机制
- ext2.2分页出现脚本错误,等待受教!
- [Android视频教程]老罗Android视频教程详解篇
- 笑对人生
- city of angels
- java线程状态详解(6种)
- 《想到做到:Android开发关键技术与精彩案例》扫描版[PDF]
- 传智播客8天快速掌握Android视频教程(完整版--适合有JavaWeb基础学习)
- page-taglib分页问题
最新问答
更多- 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
- 如何通过引用返回对象?(How is returning an object by reference possible?)
- 矩阵如何存储在内存中?(How are matrices stored in memory?)
- 每个请求的Java新会话?(Java New Session For Each Request?)
- css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
- 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
- xcode语法颜色编码解释?(xcode syntax color coding explained?)
- 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
- 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
- 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
- 西安哪有PLC可控制编程的培训
- 在Entity Framework中选择基类(Select base class in Entity Framework)
- 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
- 电脑二级VF有什么用
- Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
- 金华英语角.
- 手机软件如何制作
- 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
- 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
- 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
- Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
- 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
- python的访问器方法有哪些
- DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
- 在Ruby中对组合进行排序(Sorting a combination in Ruby)
- 网站开发的流程?
- 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
- 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
- 透明度错误IE11(Transparency bug IE11)
- linux的基本操作命令。。。