AsyncTask onPreExecute не вызывается - PullRequest
2 голосов
/ 30 июля 2011

По какой-то причине onPreExecute не вызывается.Код:

protected void onPreExcecute() {
    hook.createDialog(ticker);
}

Весь класс:

package com.evandarwin.finance;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import android.content.Context;
import android.os.AsyncTask;
import android.widget.Toast;
public class GetTicker extends AsyncTask<String, Integer, String>{
    private Context ctx;
    private String ticker;
    private SimpleFinanceActivity hook;

    public GetTicker(Context ctx, String ticker, SimpleFinanceActivity hook) {
        this.ctx = ctx;
        this.ticker = ticker.toUpperCase();
        this.hook = hook;
    }

    protected void onPreExcecute() {
        hook.createDialog(ticker);
    }

    @SuppressWarnings("unused")
    @Override
    protected String doInBackground(String... params) {
        try {
            URL url = new URL("http://finance.yahoo.com/d/quotes.csv?s="+ticker+"&f=a");

            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

            urlConnection.setRequestMethod("GET");
            urlConnection.setDoOutput(true);

            urlConnection.connect();
            InputStream is = urlConnection.getInputStream();
            StringBuffer str = new StringBuffer();

            int bufferLength = 0; //used to store a temporary size of the buffer

            byte[] stream = new byte[1024];

            while ( (bufferLength = is.read(stream)) > 0 ) {
                str.append(stream);
            }

            return str.toString();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        return null;
    }

    protected void onPostExecute(String result) {
        hook.destroyDialog();
        Toast.makeText(ctx, result, Toast.LENGTH_LONG).show();
    }
}

Это дает мне исключение NullPointerException, я знаю, что у меня была эта проблема раньше, но я не помню, что я сделал, чтобы исправитьЭто.Пожалуйста помоги!: P

Screenshot

1 Ответ

4 голосов
/ 30 июля 2011

Причина, по которой @Override вызывает проблему в Eclipse (и причина, по которой метод не вызывается), заключается в том, что вы допустили ошибку при печати. ​​

Вы называете ее onPreExcecute (обратите внимание, что «с» после «х» не должно быть).Исправьте это значение onPreExecute и используйте для этого @Override.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...