Articles of android asynctask

有效的方法来持续检查Android中的互联网连接是否可用

可能重复: 如何监控Android中的网络连接状态? 我需要不断检查互联网是否已连接,并使用适当的消息相应地更新文本区域。 现在,如果我创建一个asynctask它将执行一次并停止这不是我想要的。 我想连续检查每一刻,显然这不应该在主线上。所以服务也不是一个好选择。 任何人都可以帮助我处理这个问题的最佳和最有效的方法是什么。 谢谢

在doInBackground中抛出exception并捕获onPostExecute

我有一个错误从我的Asynctask doInBackground方法抛出。 可能吗? 我怎样才能使onPostExecute捕获onPostExecute ?

Android:为什么我得到这些AsyncTask错误?

我有一个asyncTaskProc从DB读取一些信息并将其写在ui上… 代码在Android 4.0上运行完美,但在2.3上不起作用……这是代码 新ASYNCTASK `public class IceCastPoll扩展TimerTask { public IceCastPoll() { } @TargetApi(9) public void run() { new AsyncTaskProc().execute(); } }` ASYNCTASK实施 @TargetApi(9) class AsyncTaskProc extends AsyncTask { List streams=null; @Override protected void onPostExecute(Void result) { textSong =(TextView) findViewById(R.id.textViewCurrentSong); textArtist =(TextView) findViewById(R.id.textViewCurrentArtist); textTit=(TextView) findViewById(R.id.textViewTit); textArt=(TextView) findViewById(R.id.TextViewArt); copertina=(ImageView) findViewById(R.id.imageViewCopertina); new DownloadImageTask((ImageView) findViewById(R.id.imageViewCopertina)).execute(“http://img.androidcookie.com/android/OnAir.jpg”); try { for (Stream […]

Android如何在继续之前等待代码完成

我有一个名为hostPhoto()的方法; 它基本上将图像上传到网站并检索链接。 然后,我有另一种方法将链接发布到网站。 现在我使用这种方法的方式是这样的: String link = hostPhoto(); //returns a link in string format post(text+” “+link); // posts the text + a link. 我的问题是… hostPhoto()需要几秒钟上传和检索链接,我的程序似乎不等待并继续发布,因此我留下链接为null, 无论如何,我可以让它首先获得链接…然后发布? 喜欢某种onComplete? 或类似的东西..我认为上面的方法可以工作,但通过做Log.i似乎链接返回到一秒左右后的字符串。 更新:这是我的问题的更新进度,我使用AsyncTask作为通知,但Log.i的错误输出显示urlLink为空…这意味着从hostphoto请求的链接永远不会回来的时间为日志。 。 更新2:最终工作! 问题是hostPhoto()中的线程,有人可以为我提供一个探索,为什么该线程会导致这个? 感谢所有回复的人。 private class myAsyncTask extends AsyncTask { String urlLink; String text; public myAsyncTask(String txt){ text=txt; } @Override protected Void doInBackground(Void… params) { urlLink=hostPhoto(); […]

如何在Android中的AsyncTask上返回匿名List或ArrayList

完成AsyncTask后,我有6种不同types的List结果。 并且List结果应该返回给Activity 。 例如: List , List , List , List , List ,最后是List 。 这是我的AsyncTask : public class myAsync extends AsyncTask { private List resultList; @Override protected List doInBackground(String… params) { //params[0] is url //params[1] is type callAPI api = new callAPI(params[0], params[1]); // According to type api decides type of List and generates […]

Android:确定AsyncTask正在运行的代码

在Debug窗口的Eclipse中,我看到一个显示以下内容的线程: 线程 AsyncTask#11 有没有办法确定AsyncTask所指的实际代码段? 我是否需要在代码中添加一些内容来识别正在运行的线程?

将上下文从Service传递到Asynctask而不泄漏它

我有一个Service ,我从一个给定的计时器启动AsyncTask来执行后台任务。 我的需求需要短暂的网络任务,这就是我坚持使用Asynctask的原因。 从Asynctask我正在做许多需要context的操作(例如启动通知)。 现在,当我在AsyncTask初始化context ,我收到一条警告“ 此字段泄漏了上下文对象”。 我已经看到了很多关于相同的问题,但它们都与Activity/Fragment 。 所以我的问题是,如何在不泄漏的 context在我的AsyncTask (顶级类)中使用context ?

Android最佳实践AsyncTask

我是Android开发的新手。 抱歉愚蠢的问题。 我需要检查几个http资源(resource1,resource2 ……等)并检查它们是否已启动。 如果资源1不可用,那么应用程序需要检查互联网是否已启动(可能ping谷歌?)然后如果连接实际正在运行,则需要检查所有其他资源并将有关内容的信息放到通知抽屉中。 对于一个资源使用AsyncTask和HttpURLConnection这非常简单,但我不太明白如何使用异步调用来执行逻辑(resource1 – > google – > resource2 – >在一个地方收集信息 – >显示通知)。 它的最佳实践是什么?

从IntentService调用AsyncTask的问题

我创建了IntentService类并执行asyncTask但在此代码行pDialog.show();调用onPreExecute()时会onPreExecute()exceptionpDialog.show(); AsyncHandlerService类— public class AsyncHandlerService extends IntentService{ ProgressDialog pDialog; HttpPost post; HttpResponse response; Context ctx; public AsyncHandlerService() { super(“AsyncHandlerService”); ctx = this; } @Override protected void onHandleIntent(Intent intent) { new LoadDeviceInfo().execute(); } class LoadDeviceInfo extends AsyncTask { @Override protected void onPreExecute() { super.onPreExecute(); pDialog = new ProgressDialog(ctx); pDialog.setMessage(“Updating device info…”); pDialog.setIndeterminate(false); pDialog.setCancelable(false); pDialog.show(); //Exception here.. […]

findViewById(int)方法未定义

我是Android开发的新手,我正在尝试编写一个小应用程序,它允许我获取外部JSON文件并解析它。 我得到了它的工作,但如果我尝试在后台执行它作为AsyncTask它不会工作。 Eclipse给了我错误 对于LongOperationtypes,方法findViewById(int)未定义 在这一行: TextView txtView1 =(TextView)findViewById(R.id.TextView01); 这是我的代码: public class Main extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); new LongOperation().execute(); } } class LongOperation extends AsyncTask { private final Context LongOperation = null; @Override protected String doInBackground(String… params) { try { URL json = new URL(“http://www.corps-marchia.de/jsontest.php”); URLConnection tc = json.openConnection(); […]