草庐IT

asynctasks

全部标签

android - 要强制取消 AsyncTask,doInBackground 中定期检查的标志不应该是易变的吗?

我想强制取消AsyncTask。我看到你可以使用isCancelled()喜欢inthisvalidsolution(在引擎盖下使用AtomicBoolean。但我看到类似suspiciousSolution1的解决方案,suspiciousSolution2,suspiciousSolution3其中引入了新标志privatebooleanisTaskCancelled=false;。我开始怀疑-因为那个标志被修改了publicvoidcancelTask(){isTaskCancelled=true;}在某个线程上运行,并被读入protectedVoiddoInBackground

AsyncTask 中的 Android 上下文泄漏

如果我解释这个article正确地,将Activity上下文传递给AsyncTasks是一个潜在的泄漏,因为Activity可能会在任务仍在运行时被销毁。您如何在非内部类且需要访问资源或更新UI的AsyncTasks中处理此问题?此外,如果您需要引用进度对话框来关闭它们,您如何才能避免泄露上下文? 最佳答案 如果我正确理解了您的问题:Java的WeakReference或SoftReference类非常适合此类情况。它将允许您将上下文传递给AsyncTask,而不会阻止GC在必要时释放上下文。GC在收集WeakReferences时

android - 在 Android 中,loader 相对于 Asynctask 的优势是什么?

与异步任务相比,Loader有什么优势吗?此外,如何使加载程序与装有Androidfroyo的手机兼容。编辑:这里的主要问题是我没有使用nativeDB(SqlLite)。在开发服务器上使用数据库。显然,我不能再使用CursorLoader了。AsyncTaskLoader根本没有示例。如果有的话,请做链接。将所需数据加载到本地数据库,然后使用CursorLoader查询是否更好? 最佳答案 是的,Loader比AsyncTask更有优势,因为它们处理了很多AsyncTask做不到的事情,很遗憾。在AsyncTask中很难更改屏幕方

android - 我可以在单个进程应用程序中运行多少个 AsyncTasks

我正在使用asyncTasks来加载带有图像的列表元素(只是遵循了android的有效加载位图教程)在DDMS中,我最多可以看到5个AsyncTasks正在运行现在我还添加了另一个AsyncTask,它使用MediaCodec类执行一些解码。现在在DDMS中,我仍然看到5个AsyncTasks,并且我的图像加载ynctask或解码异步任务执行,而不是两者都执行。当解码运行时,如果我滚动列表,元素的图像不会更新相反,当我通过调用它的执行方法启动新的解码异步任务时,解码不会开始,但如果我现在滚动ListView,图像就会更新。那么AsyncTask是有限制的吗??即使在listAdapte

android - 寻找在 android 中使用 get() 和 AsyncTask 的好例子

我对AsyncTask中的get(long,java.util.concurrent.TimeUnit)函数很好奇,但我很难找到它的用法示例。get(long,java.util.concurrent.TimeUnit)任何人都可以提供它的使用示例吗? 最佳答案 看起来好像AsyncTask.get()阻塞调用者线程,其中AsyncTask.execute()才不是。您可能希望将AsyncTask.get()用于测试特定Web服务调用的测试用例,但您不需要它是异步的并且您希望控制如何需要很长时间才能完成。或者任何时候您想在测试套件中

android - AsyncTask HttpPost 在 3G 上执行失败,但在 Wifi 上运行

我需要将一些字符串的Http发布到Web服务。我正在使用KSoap。@OverrideprotectedJSONObjectdoInBackground(JSONObject...params){Stringresult;HttpParamshttpParameters=newBasicHttpParams();//Setthetimeoutinmillisecondsuntilaconnectionisestablished.//Thedefaultvalueiszero,thatmeansthetimeoutisnotused.inttimeoutConnection=30000;

android - 在 onPostExecute() 中运行另一个 AsyncTask

如果我需要在另一个异步任务中运行另一个异步任务,这意味着在onPostExecute()方法中,该怎么办? 最佳答案 作为一项建议,请尝试尽可能多地卸载第一个AsyncTask中接听电话的时间。但是,如果您的应用程序设计方式是您只需要在第一个任务完成后执行另一个任务,那么只需按照与第一个任务完全相同的方式执行第二个AsyncTask一个。@OverrideprotectedvoidonPostExecute(Stringresult){newMySecondAsyncTask().execute(params);//paramsif

android - 错误 : method execute in class AsyncTask<Params, Progress,Result> 无法应用于给定类型

我想通过php将文本和图像从android发送到MySQL。但是,我收到错误并且无法解决。有人可以帮我解决问题吗?非常感谢添加函数publicvoidAdd(finalStringclaimType,finalStringAmount,finalStringDescription,finalBitmapphoto){classAddImageextendsAsyncTask{ProgressDialogloading;@OverrideprotectedvoidonPreExecute(){super.onPreExecute();loading=ProgressDialog.show

android - 如何创建 asyncTask 以防止 networkOnMainThreadException

我是Android应用程序开发的新手。我尝试开发一个android服务器客户端聊天我的第一个项目。这是客户端的代码。当客户端按下btnJoin时,它将连接到服务器并发送一个字符串。我读过很多例子,其中很多看起来像这样。我得到一个networkOnMainThreadException。我如何制作一个asyncTask来防止这个问题?任何帮助将不胜感激。btnJoin=(Button)findViewById(R.id.buttonJoin);btnJoin.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClic

java - MainActivity.this 不是封闭类 AsyncTask

我第一次尝试创建AsyncTask,但运气不太好。我的AsyncTask需要从服务器获取一些信息,然后向主布局添加新布局以显示这些信息。一切似乎或多或少都清楚了,但是“MainActivity不是封闭类”的错误消息让我很困扰。似乎没有其他人有这个问题,所以我想我错过了一些非常明显的东西,我只是不知道它是什么。另外,我不确定我是否使用了正确的方法来获取上下文,而且因为我的应用程序没有编译所以我无法测试它。非常感谢您的帮助。这是我的代码:publicclassBackgroundWorkerextendsAsyncTask>{ContextApplicationContext;@Overr