android asynctask-android 中 AsyncTask的使用

问题描述

android 中 AsyncTask的使用

我使用AsnycTask 来连接URL ,解析和返回 xml:

class Connecting extends AsyncTask<String, String, String> {
    private String URLPath = "";
    private HttpURLConnection Connection;
    private InputStream InputStream;
    private boolean Return1 = false;
    private int Return2 = -1;

    public Connecting (String fn, String u) {
        FileName = fn;
    URLPath = u;
        Connection = null;
    InputStream = null;

    Return1 = false;
    Return2 = -1;

    execute();
    }

    public boolean getReturn1() {
    return Return1;
    }

    public int getReturn2() {
    return Return2;
    }

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }

    @Override
    protected String doInBackground(String... aurl) {
        try {
            URL url = new URL(URLPath);
            Connection = (HttpURLConnection)url.openConnection();
            Connection.setConnectTimeout(10000);
            Connection.setReadTimeout(10000);
            Connection.setDoInput(true);
            Connection.setUseCaches(false);
            Connection.connect();
            InputStream = Connection.getInputStream();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(String unused) {
        super.onPostExecute(unused);

        try {
            InputStreamReader fsr = new InputStreamReader(InputStream);

            BufferedReader br = new BufferedReader(fsr);
            String line = "";
            while((line = br.readLine()) != null) {
                //parse Reture1 and Return2
            }
        }
        catch(Exception e) {
            e.printStackTrace();
        }
        Connection = null;
    }
}

我使用下面的代码来调用:

Connecting con = new Connecting(Name, URL);
System.out.println("Return1 " + con.getReturn1());
System.out.println("Return2 " + con.getReturn2());

返回 false 和 int 值 -1。
打印消息后连接 URL。
我想获取 value 值,这个值是连接成功的,并且时从 xml 中解析的,如何实现?

解决方案

可以写构造方法也可以不写构造方法,不写如下,外部调用new Connecting().execute(String fileName,String urlPath );

class Connecting extends AsyncTask<String, Integer, Integer> {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            //do something before parse XML
        }

        @Override
        protected Integer doInBackground(String... params) {
            String fileName = params[0];
            String urlPath = params[1];
            //parse XML
            return -1;
        }

        @Override
        protected void onPostExecute(Integer result) {
            // TODO Auto-generated method stub
            super.onPostExecute(result);
            // result即返回值
        }

    }

有构造方法的只需在里面加入
private String fileName;
private String urlPath;
public Connecting(String fileName,String urlPath) {
this.fileName = fileName;
this.urlPath = urlPath;
}

时间: 2024-10-03 00:48:30

android asynctask-android 中 AsyncTask的使用的相关文章

Android中AsyncTask的简单用法

        在开发Android移动客户端的时候往往要使用多线程来进行操作,我们通常会将耗时的操作放在单独的线程执行,避免其占用主线程而给用户带来不好的用户体验.但是在子线程中无法去操作主线程(UI 线程),在子线程中操作UI线程会出现错误.因此android提供了一个类Handler来在子线程中来更新UI线程,用发消息的机制更新UI界面,呈现给用户.这样就解决了子线程更新UI的问题.但是费时的任务操作总会启动一些匿名的子线程,太多的子线程给系统带来巨大的负担,随之带来一些性能问题.因此an

Android中AsyncTask详细介绍_Android

AsyncTask是一个很常用的API,尤其异步处理数据并将数据应用到视图的操作场合.其实AsyncTask并不是那么好,甚至有些糟糕.本文我会讲AsyncTask会引起哪些问题,如何修复这些问题,并且关于AsyncTask的一些替代方案. AsyncTask 从Android API 3(1.5 Cupcake)开始,AsyncTask被引入用来帮助开发者更简单地管理线程.实际上在Android 1.0和1.1也是有类似的实现,那就是UserTask.UserTask和AsyncTask有着相

Android中AsyncTask异步任务使用详细实例(一)_Android

AsyncTask是Android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程. 使用AsyncTask最少要重写以下两个方法: 1.doInBackground(Params-) 后台执行,比较耗时的操作都可以放在这里.注意这里不能直接操作UI.此方法在后台线程执行,完成任务的主要工作,通常需要较长的时间.在执行过程中可以调用publicProgress(Progres

详解Android中AsyncTask机制_Android

在Android当中,提供了两种方式来解决线程直接的通信问题,一种是通过Handler的机制,还有一种就是今天要详细讲解的 AsyncTask 机制. AsyncTask                                                                                AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更

Android中AsyncTask与handler用法实例分析_Android

本文实例讲述了Android中AsyncTask与handler用法.分享给大家供大家参考,具体如下: 首先,我们得明确下一个概念,什么是UI线程.顾名思义,ui线程就是管理着用户界面的那个线程! android的ui线程操作并不是安全的,并且和用户直接进行界面交互的操作都必须在ui线程中进行才可以.这种模式叫做单线程模式. 我们在单线程模式下编程一定要注意:不要阻塞ui线程.确保只在ui线程中访问ui组件 当我们要执行一个复杂耗时的算法并且最终要将计算结果反映到ui上时,我们会发现,我们根本没

Android中AsyncTask异步任务使用详细实例(一)

AsyncTask是Android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程. 使用AsyncTask最少要重写以下两个方法: 1.doInBackground(Params-) 后台执行,比较耗时的操作都可以放在这里.注意这里不能直接操作UI.此方法在后台线程执行,完成任务的主要工作,通常需要较长的时间.在执行过程中可以调用publicProgress(Progres

详解Android中AsyncTask机制

在Android当中,提供了两种方式来解决线程直接的通信问题,一种是通过Handler的机制,还有一种就是今天要详细讲解的 AsyncTask 机制. AsyncTask AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程. 怎么来理解AsyncTask呢?通俗一点来说,AsyncTask就相当于Android给我们提供了一个多线程编程的一个

Android中AsyncTask与handler用法实例分析

本文实例讲述了Android中AsyncTask与handler用法.分享给大家供大家参考,具体如下: 首先,我们得明确下一个概念,什么是UI线程.顾名思义,ui线程就是管理着用户界面的那个线程! android的ui线程操作并不是安全的,并且和用户直接进行界面交互的操作都必须在ui线程中进行才可以.这种模式叫做单线程模式. 我们在单线程模式下编程一定要注意:不要阻塞ui线程.确保只在ui线程中访问ui组件 当我们要执行一个复杂耗时的算法并且最终要将计算结果反映到ui上时,我们会发现,我们根本没

Android中AsyncTask详细介绍

AsyncTask是一个很常用的API,尤其异步处理数据并将数据应用到视图的操作场合.其实AsyncTask并不是那么好,甚至有些糟糕.本文我会讲AsyncTask会引起哪些问题,如何修复这些问题,并且关于AsyncTask的一些替代方案. AsyncTask 从Android API 3(1.5 Cupcake)开始,AsyncTask被引入用来帮助开发者更简单地管理线程.实际上在Android 1.0和1.1也是有类似的实现,那就是UserTask.UserTask和AsyncTask有着相