我的问题的背景是我正在使用MonoDroid编写一个程序来使用WCF服务。我想要一些关于C#中SOAP的C#库,所以MonoDroid是一个显而易见的选择。我无法尝试将void作为模板参数传递给AsyncTask。Xamarin(MonoDroid的开发人员)提供的关于AsyncTask的文档还有很多不足之处,可以在这里找到:http://docs.mono-android.net/?link=C%3aAndroid.OS.AsyncTask我需要做的,我在Java中用这样定义的AsyncTask完成了publicclassSoapRequestTaskextendsAsyncTask
在一个Activity中,我有2个繁重的任务。一种是创建具有默认行和值的默认数据库。另一个是从数据库中获取所有数据以填充屏幕上的UI元素。该页面上有超过100个UI元素(统计数据)。现在,在一个Java代码文件中有两个AsyncTask类会不会很糟糕?一个将用于创建默认数据库(仅在第一次启动时激活),另一个将多次用于从填充上述UI元素所需的数据库中获取所有数据。我问的是不好的做法,而不是关于同一个AsyncTask类是否可以用于两个繁重的任务(通过if/else)这一事实。 最佳答案 没有。不要这样想。您还可以如何执行两个后台任务?
我有一个嵌套的内部类,它扩展了AsyncTask以在后台运行数据库查询。在postexecute方法中,我调用父方法来更新View,如下所示privateclassQueryRunnerextendsAsyncTask{@OverrideprotectedCursordoInBackground(Void...voids){returngetContentResolver().query(LeadContentProvider.buildUri(app.getEntityId()),newString[]{LeadContentProvider._ID},null,null,LeadC
我需要一些有关登录过程代码基本架构的帮助。我正在实现异步Http处理以使ICS工作。这段代码的目的是登录我的应用。从UI(Login.java)提交登录表单连接到我们的服务器并通过http获取XML结果传递用户名/密码将XML结果解析为数组。(ParseXML.java)在UI中显示结果反馈。现在这一切都在我的程序中工作,但是在尝试使用强制执行异步HTTP连接的ICS进行测试后,我很快意识到我的问题并让我怀疑我的整个设计......目前的基本工作方式:登录.java:classLogin{...ParseXMLmyXMLParser=newParseXML();myXMLParser.
我的Activity有一个AsyncTask,您可以在下面看到其doInBackground方法。我必须向多个服务器发出多个搜索请求,为了加快执行速度,我使用了Java的ExecutorService来发出并发请求。这工作正常,但如果我用调用AsyncTask.cancel();方法,我希望我的AsyncTask停止它正在做的事情并退出>true作为mayInterruptIfRunning参数。这在我需要在我的Activity退出时停止任务的情况下很有用,例如按下“后退”按钮。我读到调用AsyncTask的cancel()方法将阻止调用onPostExecute方法,但是doInBa
假设我在Activity类中有一个内部类AsyncTask。我必须在这个AsyncTask中有weakRefeernce吗?此外,我是否必须始终为AsyncTask使用weakReference?最后,如果我将内部类AsyncTask声明为静态的,它安全吗? 最佳答案 是的,如果它是内部类或只是创建它自己的类,请始终将您的Asynctask声明为静态,尽量避免声明为非静态内部类,因为它会造成内存泄漏。Readhereforamoreelaborateexplanationwhyyoushouldnotdothis您不想使用WeakR
我有一个Activity类,它有一个引用AsyncTask实例的属性,这个AsyncTask也引用了这个Activity。从AsyncTask的onPostExecute()我想将Activity对AsyncTask的引用设置为null(通过具有AsyncTask实例的Activity引用).这是一个好的做法吗?我在方法代码的最后一行执行此操作,因为我实际上是在告诉垃圾收集器它可以删除该实例,因为它不再被任何其他对象(Activity)引用。这是正确的,还是我错了?编辑:我在下面的回答恢复了我使用的最终解决方案。谢谢! 最佳答案 在
我正在尝试创建下载进度。我有扩展AsyncTask的类(class):公共(public)类DownloadFileTask扩展AsyncTask当下载开始时,我想创建进度:@OverrideprotectedvoidonPreExecute(){progressDialog=newProgressDialog(whatContext);progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);progressDialog.setMessage("Loading...");progressDialog.setCan
在我正在开发atm的应用程序中。我使用asynctasks将视频上传到网站,就像现在一样,如果应用程序进程被终止(用户使用返回键返回主屏幕),那些asynctasks就会丢失。理想情况下,我希望在应用程序进程被终止的情况下继续上传,但我认为这是不可能的。我想知道是否有办法以某种方式保留他们的进度(也许需要网站API的支持?),或者如果没有,至少保存异步任务的详细信息并在再次打开应用程序时重新启动它。Vimeos应用程序似乎已经能够恢复视频上传,即使在终止应用程序进程之后,这正是我希望实现的。感谢任何想法和建议。 最佳答案 我认为您可
我有一个AsyncTask正在运行。我有一个TextView,我模仿Toast最初产生的消息。我想在OnPostExecute成功后清除TextView但它没有这样做。任务完成Toast工作正常。如何将OnPostExecute中的TextView设置为空白?用户仍在TextView所在的显示屏幕上。错误情况代码如下:@OverrideprotectedvoidonPostExecute(Voidresult){FetchingImage=0;if(webLoadError>0){TextViewtext=(TextView)findViewById(R.id.textView2);S