为什么一个AsyncTask问题,遇到一个问题怎么解决决

用户“区城轩”对问题“AsyncTask和Android上的错误如何处理?”的回答 - 问答 - 云+社区 - 腾讯云我将使用的代码转换Handler为AsyncTask。AsyncTask和Android上的错误如何处理?写回答邀请回答天前AsyncTask和Android上的错误如何处理?写回答创建一个AsyncResult对象:public class AsyncTaskResult&T& {
public T getResult() {
public Exception getError() {
public AsyncTaskResult(T result) {
this.result =
public AsyncTaskResult(Exception error) {
this.error =
以下是从Web服务器获取JSON响应的任务模型:AsyncTask&Object,String,AsyncTaskResult&JSONObject&& jsonLoader = new AsyncTask&Object, String, AsyncTaskResult&JSONObject&&() {
protected AsyncTaskResult&JSONObject& doInBackground(
Object... params) {
// get your JSONObject from the server
return new AsyncTaskResult&JSONObject&(your json object);
} catch ( Exception anyError) {
return new AsyncTaskResult&JSONObject&(anyError);
protected void onPostExecute(AsyncTaskResult&JSONObject& result) {
if ( result.getError() != null ) {
// error handling here
else if ( isCancelled()) {
// cancel handling here
JSONObject realResult = result.getResult();
// result handling here
回答过的其他问题直播答题表面是几大平台在争相抢用户,其实这背后实际抢占的是用户的时间。通过看清这一点,我们就可以知道它对谁的影响更大了。答题直播基本在每天午休以及晚上下班后的时间,每半个小时或一个小时一场,如果你同时玩多个APP的话完全可以到睡前每半个小时一场,而一场会持续20分钟左右,也就是从......
import matplotlib.pyplot as plt
from matplotlib import cm
from numpy import linspace
start = 0.0
stop = 1.0
number_of_lines= 1000
cm_sub......
对于MSSQL,可以将其封装在表值函数中,也可以存储proc,并将其作为变量在开始日期和结束日期进行解析。 DECLARE @startDate DATETIME
DECLARE @endDate DATETIME
SET @startDate = ''
string script = string.Format(&alert('{0}');&, cleanMessage);
if (page != null && !page.ClientScript.IsClientScriptBlockRegistered(&alert&)......
我没有一个明确的答案,但是我们使用psi-probe来监视我们的JVM(我们的应用程序容器--Tomcat 8+使用JDK 1.8来提供动态页面),它可以为您提供JVM内存利用率的完美情况(Eden,幸存者,旧世代等),以及CPU利用率,希望能帮助你看到你正在使用的垃圾收集器算......
必须在WebView使用JavaScript中启用JavaScriptWebSettings.setJavaScriptEnabled(true); 该应用需要权限 ACCESS_FINE_LOCATION 在WebView必须使用自定义WebChromeClient它实现We...... Shareco Founder 、LaserFle...请教关于AsyncTask的问题
[问题点数:40分,结帖人jeky198306]
请教关于AsyncTask的问题
[问题点数:40分,结帖人jeky198306]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2014年8月 移动开发大版内专家分月排行榜第三
2014年8月 移动开发大版内专家分月排行榜第三
匿名用户不能发表回复!|android中如何处理耗时操作,asyncTask有什么不足之处_百度知道
android中如何处理耗时操作,asyncTask有什么不足之处
我有更好的答案
耗时操作处理:放到异步线程中进行操作。Asynctask的不足之处:1.AsyncTask可能存在新开大量线程消耗系统资源和导致应用FC的风险2.AsyncTask一旦执行了 doInBackground,就算调用取消方法,也会将doInBackground里面的代码执行完毕,才会停止。3.线程池不经维护,当大量异步发生时,导致线程池满了,会出异常。
采纳率:91%
来自团队:
为您推荐:
其他类似问题
android的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。请教大神们,AsyncTask关闭线程的问题【android开发吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:123,394贴子:
请教大神们,AsyncTask关闭线程的问题收藏
我写了一个类继承AsyncTask执行下载图片并显示到imageview上,但是在这之后我看DDMS里面,这个AsyncTask子类开的线程一直是wait状态,即便我关闭应用,这个线程依然存在,我启动5个任务下载图片,就开了5个线程,但是5个任务完成后全都没有关闭,一直在那wait怎么控制让这个任务完成之后就自动把线程关闭?试了一些方法,基本不行,百度这方面的信息也找不到能提供解决方法的方案,不想用别人的框架,我要自己写有大神指点小弟吗,,,
登录百度帐号CSDN上的这个系列文章《》对AsyncTask讲解的很清楚,特别是其中的几个例子特别好。最近在在做一个Android应用开发,都是用AsyncTask来完成后台任务,简单总结一下。
通常使用AsyncTask,是通过继承这个超类来完成的,如:
class BackgroundTask extends AsyncTask&Object,Object,Object& {
protected Object doInBackground(Object... params)
return null;
子类必须重载 doInBackground方法。&&&&里面的三个类型,依次代表执行参数类型、进度参数类型和结果参数类型。doInBackground的参数类型必须是执行参数类型,返回的类型必须和结果参数类型。这三个类型应该根据需要来定,其实用Object也可以,用的时候在做类型转换。启动一个AsyncTask,可以在这样做:
BackgroudTask bt = new BackgroundTask();bt.execute("param");
使用AsyncTask的容易犯下的错误是在doInBackground方法里面直接对UI元素进行操作。如果需要和UI进行交互,可以配合使用publishProgress和onProgressUpdate。比如
protected Object doInbackground(Object... params)
publishProgress("完成了20%");
publishProgress("完成了80%");
return null;
protected void onProgressUpdate(Object... progress){
textView1.setText((String)progress[0]);
这里onProgressUpdate是工作在UI线程的。
使用AsyncTask的另一个问题是关于cancel。实际上,单单调用AsyncTask对象的cancel方法,并不能停止doInBackground方法的继续执行。通常比较接受的方法是设置一个标志位,也就是在每次执行前检查一下某个变量的值(或者可以调用isCancelled方法判断),来决定继续执行还是停止。这种处理手段对于一些循环性的工作比较有用,但是对于一些循环性弱的工作可能并不怎么有效。这也算是AsyncTask的一个弱点。和Thread相比,AsyncTask还有一个弱点是效率的问题,这个可以在本文开头给出的链接中找到相关的信息。
AsyncTask还有一个问题和onPreExecute方法有关。这个方法是工作在UI线程的。虽然是叫onPreExecute,但是doInBackground方法(也就是实际上的execute),并不会等待onPreExecute方法做完全部操作才开始执行。所以,一般还是不要用这个方法,可以在调用AsyncTask对象的execute方法之前就把该完成的操作完成,以免引起某些错误。
AsyncTask还有一个方法是onPostExecute,这个方法也是工作在UI线程,它是在doInBackground方法执行结束,并返回结果后调用。这个方法里面可以调用UI线程的startActivity,这样可以实现完成大量后台操作后,自动跳转Activity的功能。这个方法里面也可以执行另一个AsyncTask的execute方法。
阅读(...) 评论()

我要回帖

更多关于 为什么要解决民生问题 的文章

 

随机推荐