Tag: android asynctask

如何在Android上建立异步URL连接?

我使用以下类连接到我的Web服务。 我想让这个异步。 我怎样才能做到这一点? package org.stocktwits.helper; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.json.JSONException; import org.json.JSONObject; import android.util.Log; public class RestClient{ private static String convertStreamToString(InputStream is) { /* * To convert the InputStream to String we use the BufferedReader.readLine() * method. We […]

循环AsyncTask类必须声明为abstract或实现抽象方法

我试图遍历我的表中的一些记录,并为每个记录,使用值作为参数; 得到一个网页来解析一些HTML 获取一些JSON数据来解析并从中获取几个值 这些都可以完美地完成,但我不能让它们都在AsyncTask中工作。 我这里有代码。 我知道我可能已经离开了,但是如果有人能给我一个关于我的想法如何消失的推动,我真的很感激。 在第一行 private class FetchWebsiteData extends AsyncTask { 我明白了 Class FetchWebsiteData must either be declared abstract or implement abstract method doInBackground(params…) in ‘AsynTask’ 作为错误消息并以红色下划线。 private class FetchWebsiteData extends AsyncTask { @Override protected void onPreExecute() { super.onPreExecute(); mProgressDialog = new ProgressDialog(summary.this); mProgressDialog.setMessage(“Loading…”); mProgressDialog.setIndeterminate(false); mProgressDialog.show(); } protected String doInBackground(String urls3, String result3) […]

在android中使用asynctask为RecyclerView下载图像

这是我的以下AsyncTask类代码,用于下载RecyclerView图像。 public class MyDownloadImageAsyncTask extends AsyncTask { private final WeakReference imageViewReference; public MyDownloadImageAsyncTask(ImageView imv) { imageViewReference = new WeakReference(imv); } @Override protected Bitmap doInBackground(String… urls) { Bitmap bitmap = null; for (String url : urls) { bitmap = MyUtility.downloadImage(url); /*if (bitmap != null) { mImgMemoryCache.put(url, bitmap); }*/ } return bitmap; } protected void onPostExecute(Bitmap bitmap){ […]

使用AsyncTask加载位图图像

我试图在有人通过我的应用程序工作时在后台加载图像。 我写的逻辑是这样的: public class ImageLoader extends AsyncTask { private String URL; private int type; ImageLoader(String Url, int Type) { URL = Url; type = Type; } @Override protected Bitmap doInBackground(Context… arg0) { AssetManager assetMgr = arg0[0].getAssets(); Bitmap bitmap = null; try { bitmap = BitmapFactory.decodeStream(assetMgr.open(URL)); } catch (IOException e) { e.printStackTrace(); } return bitmap; } […]

在ASyncTask.execute()之后从Activity执行x()

这是一个我不知道如何去做的。 基本上我有一个ASyncTask类,它在后台照常开展业务。 完成后我想做些什么。 现在,在你跳到前面说“只使用onPostExecute()”之前,这是一个问题。 我需要运行的方法是在activity而不是Task类。 我看到它的方式,我有两个选择。 A: CustomTask task = new CustomTask(); task.execute(passedParams); //when(task.execute is finished) { doX(); } 我希望我可以这样做,因为它非常简单,让我检查任务何时完成,而不必经常轮询活动和getStatus()活动。 我不认为我会幸运,但如果有人有办法,那就太好了 B: 将活动作为参数传递给ASyncTask。 这很麻烦,我不喜欢使用它,但除了那个和对象参考,我不知道它是否会工作 CustomTask task = new CustomTask(); task.execute(passedParams,MyActivity); 然后在Tasks onPostExecute中,我可以让它调用MyActivity.doX(); C: 第三种方法是使asynctask成为活动本身的私有类,但我真的希望将它保持独立。 可重用性和什么不 – 有什么想法吗? 总结一下,在task.execute完成后需要doX()。 任何想法都赞赏。 d: 好的,我知道我在这里。 我一直在想新的解决方案。 可以从任何位置调用的类方法或静态方法。 public class ProfileSettings extends Activity { public static void doX() { //Logic… […]

Android-遗留无头片段

我正在阅读有关如何在UI和后台线程之间进行交互的内容。 本文有以下注意事项: AsyncTask不会自动处理配置更改,即重新创建活动。 程序员必须在编码中处理这个问题。 对此的常见解决方案是在保留的无头片段中声明AsyncTask。 我不明白什么是保留无头碎片。 例如,通过这种方式我可以添加片段: FragmentManager manager = getSupportFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); transaction.add(R.id.frame, new MyFragment()); transaction.commit(); 在片段中我可以像这样执行AsyncTask: MyTask myTask = new MyTask(); String[] args = {“Hello”}; myTask.execute(args); 这被称为“在保留的无头片段中声明AsyncTask”吗?

从Asynctask返回结果

如果我在我的Android应用程序中有这个后台工作文件并且它从我的数据库中获取数据,我怎么能将字符串’result’传递给另一个类? 后台工作者连接到我的服务器,然后使用php连接到数据库。 public class BackgroundWorker extends AsyncTask { Context context; AlertDialog alertDialog; BackgroundWorker (Context ctx) { context = ctx; } @Override public String doInBackground(String… params) { String type = params[0]; String specials_url = “”; if(type.equals(“venue click”)) { try { //String user_name = params[1]; URL url = new URL(specials_url); HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection(); httpURLConnection.setRequestMethod(“POST”); httpURLConnection.setDoOutput(true); httpURLConnection.setDoInput(true); […]

在服务类中使用AsyncTask?

我必须将数据上传到服务器。 我正在使用与我的应用程序在同一进程上运行的服务。 我应该使用单独的线程进行上传过程还是应该使用AsyncTask将数据上传到服务器? 更具体地说,我可以在服务类中使用AsyncTask吗? 我应该使用它吗? 此服务应始终在内存中运行,以便每5秒向服务器发送一次数据。

如何定期调用asyncTasks

我有两个AsyncTasks在做网络操作。 我想定期打电话给他们(比如一分钟之后)。 我怎么做? 我不认为我可以在UI线程上做到这一点。 我需要创建一个新线程吗? 没有AlarmManager / Service可以实现这个吗? 基本上我想在一分钟之后定期检出这两个陈述。 new UploadAsyncTask().execute(); new DownloadAsyncTask().execute(); 谢谢

显示使用Android录制时不断更新的双倍(频率)

我正在构建一个Android应用程序,它使用FFT算法显示持续音符的频率。 我正在使用Jtransform方法。 我目前的问题是我无法在屏幕上显示频率。 以下代码是fft频率计算和AsynchTask,它应该在文本框中显示频率 import edu.emory.mathcs.jtransforms.fft.DoubleFFT_1D; public class Tuning extends Activity implements OnClickListener{ int audioSource = MediaRecorder.AudioSource.MIC; // Audio source is the device mic int channelConfig = AudioFormat.CHANNEL_IN_MONO; // Recording in mono int audioEncoding = AudioFormat.ENCODING_PCM_16BIT; // Records in 16bit private DoubleFFT_1D fft; // The fft double array int blockSize = 1024; // deal with […]