Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Android

Problem Task 1 finishing our asynctask

I am getting an error with my code and I cannot identify the problem:

import android.os.AsyncTask;
import android.os.Bundle;

public class CustomActivity extends Activity {

    protected JSONObject  mStatus;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_custom);
        CustomAsyncTask task = new CustomAsyncTask();
        task.execute();
    }

    protected void updateStatusLabel() {
        super.updateStatusLabel();
    }

    protected class CustomAsyncTask extends AsyncTask<Object, Void, String> {   
        @Override
        protected String doInBackground(Object... params) {
            // Imagine this is some code to do some work
            return "Done!";
        }
    @Override
    protected void onPostExecute(JSONObject result) {
      mStatus = result;
    }

    }
}

I changed mStatus to a JSONObject and passed the result to it. What is wrong?

Can you go into the LogCat and post what the logged error is.

1 Answer

Ben Jakuben
STAFF
Ben Jakuben
Treehouse Teacher

The parameter for your onPostExecute() method should match the data type of the result returned from doInBackground(). So in other words, since your doInBackground() method is currently returning a String, you'll need to change JSONObject result to String result and update elsewhere accordingly. Or change doInBackground() to return a JSONObject.

Hope this helps!