package com.example.util; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import android.os.AsyncTask; public class Util extends AsyncTask<String, Void, String>{ private String json; @Override protected String doInBackground(String... params) { try { URL url=new URL(params[0]); HttpURLConnection connection=(HttpURLConnection) url.openConnection(); if(connection.getResponseCode()==200){ InputStream is = connection.getInputStream(); byte[] by=new byte[1024]; int len; ByteArrayOutputStream os=new ByteArrayOutputStream(); while((len=is.read(by))!=-1){ os.write(by, 0, len); } json = os.toString("gbk"); return json; } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } }
import java.util.List; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import com.example.adapter.Adapter; import com.example.bean.Bean; import com.example.bean.Bean.Data; import com.example.util.Util; import com.google.gson.Gson; public class SecActivity extends Activity { private ListView lv; private List<Data> da; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sec); lv = (ListView) findViewById(R.id.listView1); get(); lv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { Intent intent = new Intent(SecActivity.this, ThreActivity.class); intent.putExtra("source", da.get(arg2).source); intent.putExtra("dis", da.get(arg2).display_url); startActivity(intent); } }); } public void get() { String path = "http://ic.snssdk.com/2/article/v25/stream/?category=news_tech&count=20&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=1457695555&loc_mode=5&lac=4527&cid=28883&iid=3835029558&device_id=12211880440&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=iToolsAVM&os_api=19&os_version=4.4.4&uuid=352284041361761&openudid=84c1c7b192991cc6"; Util ut = new Util() { @Override protected void onPostExecute(String result) { Gson gson = new Gson(); Bean bean = gson.fromJson(result, Bean.class); da = bean.data; lv.setAdapter(new Adapter(da, SecActivity.this)); super.onPostExecute(result); } }; ut.execute(path); } }
相关推荐
Android提供了一种便捷的机制,名为`AsyncTask`,用于在后台线程执行这些任务,同时允许在主线程更新UI。`AsyncTask`是一个轻量级的框架,设计用来简化在Android应用程序中进行后台操作的过程。 `AsyncTask`包含三...
AsyncTask是Android中用于在后台线程执行耗时操作并更新UI的一种机制。它通过封装了线程管理和与主线程的交互,简化了在UI线程中处理异步任务的流程。下面我们将深入探讨AsyncTask的使用、原理以及如何更新UI。 ...
在Android开发中,异步处理是非常重要的一环,特别是在与服务器进行数据交互时,为了保持UI线程的流畅性,避免出现"应用无响应"(ANR)的情况,开发者通常会使用`AsyncTask`。本例子是关于如何将`AsyncTask`与`...
在Android应用开发中,AsyncTask是一个用于在后台线程执行耗时操作并更新UI的工具类,它是Android 1.5版本引入的。AsyncTask的设计初衷是为了简化异步编程,避免直接操作线程和Handler带来的复杂性。下面我们将详细...
`AsyncTask`是Android提供的一种轻量级的并发工具,用于在后台线程执行任务,并在主线程更新UI。在本示例中,我们将深入探讨如何使用`AsyncTask`来加载网络图片并实时更新进度条。 首先,我们需要理解`AsyncTask`的...
`AsyncTask`是Android提供的一种轻量级的异步处理机制,它可以帮助我们在主线程中轻松地执行后台任务,同时更新UI。本篇文章将详细探讨如何使用`AsyncTask`来实现网络图片的下载,并且展示进度条提示。 `AsyncTask`...
**Android AsyncTask 源码解析** AsyncTask 是 Android 平台上一个非常重要的工具类,用于在后台线程执行耗时操作,然后在 UI 线程更新结果,从而避免了因长时间运行任务而导致的 ANR(Application Not Responding...
在Android开发中,`Handler`、`AsyncTask`和`Looper`是三个非常重要的概念,它们主要用于处理应用程序的异步操作和线程通信。本文将深入探讨这些知识点,并通过实例来展示它们如何协同工作。 首先,`Handler`是...
Android提供了一种轻量级的机制来在后台执行这些任务,即`AsyncTask`。本资料包主要讲解了如何使用`AsyncTask`进行异步加载图片,这对于在UI线程中保持流畅用户体验至关重要。 `AsyncTask`是Android SDK中的一个类...
`AsyncTask`是Android提供的一种轻量级的异步处理机制,它能让我们在后台线程执行耗时操作,并在完成后更新主线程中的UI。下面我们将深入探讨`AsyncTask`的工作原理及其封装方法。 `AsyncTask`的核心在于三个泛型...
`AsyncTask`是Android提供的一种轻量级的异步任务处理框架,它允许开发者在后台线程执行耗时操作,然后在UI线程更新结果,避免了阻塞主线程导致的ANR(Application Not Responding)问题。这篇我们将深入探讨`...
AsyncTask 是 Android 平台上一种轻量级的异步处理机制,主要用于在后台执行耗时操作,同时确保结果能够在主线程中安全地更新 UI。它简化了多线程编程,尤其是与用户界面交互的需求。 首先,AsyncTask 包含三个泛型...
AsyncTask是Android平台中用于在后台执行耗时操作并更新UI的一种工具类。它主要设计用来简化异步处理,特别是那些需要与用户界面交互的任务。在这个"AsyncTask的Demo"中,我们将深入探讨AsyncTask的工作原理及其核心...
在这个"Android 线程AsyncTask逐步在list中加入条目"的例子中,我们首先会创建一个`AsyncTask`子类,如`LoadDataTask`,继承自`AsyncTask`。`doInBackground()`方法将用于生成数据(可能是从网络请求或本地数据库...
AsyncTask是Android开发中用于在后台执行任务并更新UI的重要工具。它允许开发者在主线程之外执行耗时操作,如网络请求、数据库操作等,同时能够方便地在工作完成时更新UI,避免了直接在主线程中进行这些操作导致的...
在Android开发中,AsyncTask是一种轻量级的异步处理工具,用于在后台线程执行耗时操作,然后在UI线程更新结果。本篇文章将深入探讨如何利用面向对象的思想来实现AsyncTask类的复用,提高代码的可维护性和灵活性。 ...
### AndEngine分析之三——AsyncTask与BaseActivity深入解析 #### 一、AsyncTask概述 在AndEngine项目中,为了实现界面更新等操作时避免主线程阻塞的问题,使用了`AsyncTask`来处理后台任务。`AsyncTask`提供了一...
在Android开发中,异步任务(AsyncTask)是一种常见的用于执行后台操作并更新UI线程的工具,尤其在处理耗时任务,如加载网络图片时非常有用。AsyncTask提供了简单的接口,使得开发者可以在后台线程中执行计算,然后...
`AsyncTask`是Android SDK提供的一种轻量级的异步处理机制,它使得开发者能够在后台线程执行任务,并在UI线程更新结果,避免了主线程被阻塞的风险。下面将详细解释`AsyncTask`的原理、使用方法以及注意事项。 ### ...
在Android开发中,AsyncTask是一种常用的轻量级异步任务处理框架,用于在后台线程执行耗时操作,然后在UI线程更新结果。当我们需要取消一个正在运行的AsyncTask时,就需要理解并正确使用`cancel`方法。本文将深入...