Android ASyncTask опубликует ошибку Progress - PullRequest
1 голос
/ 18 февраля 2012

, так что это моя проблема: всякий раз, когда publishProgress (sentCount); вызывается в приложении вылетает. Я посмотрел вокруг и до сих пор не знаю причину этого. Любая помощь с благодарностью! Спасибо

class MySmsTask extends AsyncTask<String, Integer, Integer> {

    protected ProgressBar onPreExecute(String...messageData) {
        final ProgressBar progress = progressSend;
        int msgCount = Integer.parseInt(messageData[2]);
        progress.setMax(msgCount);
        progress.setProgress(0);
        return progress;
    }   
    @Override
    protected Integer doInBackground(String... messageData) {
        int sentCount = 0;
        int size = 1;
        int delay = Integer.parseInt(messageData[3]);
        int delayf = delay + 2;
        int msgCount = Integer.parseInt(messageData[2]);
        String message = messageData[1];
        String phoneNo = messageData[0];
        if (phoneNo.length()>0 && message.length()>0){
            for (sentCount = 0; sentCount < msgCount; sentCount++) {
                for (int i = 0; i < size; i++) {
                    sendSMS(messageData[0], messageData[1]);

                    try {
                        publishProgress(sentCount);
                        Thread.sleep(delayf * 1000);

                    } catch (InterruptedException e) {

                        e.printStackTrace();
                    }
                }
            }

        }
        return sentCount;

    }
    protected void onProgressUpdate(Integer... mprogress) {
        progress.setProgress(mprogress[0]);
        /*Toast.makeText(getBaseContext(), "Sent " + mprogress + " messages", Toast.LENGTH_SHORT).show();*/
    }

    protected void onPostExecute(Integer result) {
        Toast.makeText(getBaseContext(), "Sent " + result + " messages", Toast.LENGTH_SHORT).show();
    }

ОШИБКА:

02-18 00:04:44.019: E/AndroidRuntime(32561): FATAL EXCEPTION: main
02-18 00:04:44.019: E/AndroidRuntime(32561): java.lang.NullPointerException
02-18 00:04:44.019: E/AndroidRuntime(32561):    at          txt.messager.app.TxtMessagerActivity$MySmsTask.onProgressUpdate(TxtMessagerActivity.java:85)
02-18 00:04:44.019: E/AndroidRuntime(32561):    at txt.bomber.app.TxtMessagerActivity$MySmsTask.onProgressUpdate(TxtMessagerActivity.java:1)
02-18 00:04:44.019: E/AndroidRuntime(32561):    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:432)
02-18 00:04:44.019: E/AndroidRuntime(32561):    at android.os.Handler.dispatchMessage(Handler.java:99)
02-18 00:04:44.019: E/AndroidRuntime(32561):    at android.os.Looper.loop(Looper.java:130)
02-18 00:04:44.019: E/AndroidRuntime(32561):    at android.app.ActivityThread.main(ActivityThread.java:3906)
02-18 00:04:44.019: E/AndroidRuntime(32561):    at java.lang.reflect.Method.invokeNative(Native Method)
02-18 00:04:44.019: E/AndroidRuntime(32561): at java.lang.reflect.Method.invoke(Method.java:507)
02-18 00:04:44.019: E/AndroidRuntime(32561): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:840)
02-18 00:04:44.019: E/AndroidRuntime(32561): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:598)
02-18 00:04:44.019: E/AndroidRuntime(32561):at dalvik.system.NativeStart.main(Native Method)

1 Ответ

3 голосов
/ 18 февраля 2012

progress, установленное в onPreExecute, является локальной переменной.Я не знаю, какой progress компилятор видит в вашем onProgressUpdate, но это не то же самое.Следовательно, это, вероятно, ноль.

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