I'm getting an error in eclipse stating: "Cannot make a static reference to the non-static method invalidate() from the type View MainActivity.java" and I'm not sure exactly what I can do to resolve this. How can I either make invalidate() static or make View non-static?
SOURCE:
public class MainActivity extends Activity {
    private TextView textView;
    private Handler handler;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = (TextView) findViewById(R.id.TextView01);
        handler = new Handler();
    }
    private class DownloadWebPageTask extends AsyncTask<String, Void, String> {
        @Override
        protected String doInBackground(String... urls) {
           // perform HTTP client operation
        }
        @Override
        protected void onPostExecute(final String title) {
            handler.post(new Runnable() {
                    @Override
                    public void run() {
                        textView.setText(title);
                        View.invalidate();
                    }
            });
        }
    }
    public void onClick(View view) {
        DownloadWebPageTask task = new DownloadWebPageTask();
        task.execute(new String[] { "http://www.google.com" });
    }
}
XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <Button
        android:id="@+id/readWebpage"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="onClick"
        android:text="Load Webpage" >
    </Button>
    <TextView
        android:id="@+id/TextView01"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="Placeholder" >
    </TextView>
</LinearLayout> 
FIRST SOLUTION ATTEMPT:
    public class MainActivity extends Activity {
    private TextView textView;
   // String response;
    public interface Callback {
        void onModifiedTextView(String value);
    }
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = (TextView) findViewById(R.id.TextView01);
    }
    public void onModifiedTextView(final String title) {
        runOnUiThread(new Runnable() {
            public void run() {
                textView.setText(title);
                textView.invalidate(); // not even necessary
            }
        });
    }
    public class DownloadWebPageTask extends AsyncTask<String, Void, String> {
        public DownloadWebPageTask(MainActivity mainActivity) {
            this.callback = mainActivity;
        }
        private MainActivity callback;
        public DownloadWebPageTask() {
            // TODO Auto-generated constructor stub
        }
        public DownloadWebPageTask(TextView textView) {
            // TODO Auto-generated constructor stub
        }
        @Override
        protected String doInBackground(String... urls) {
            String response = "";
            for (String url : urls) {
                DefaultHttpClient client = new DefaultHttpClient();
                HttpGet httpGet = new HttpGet(url);
                try {
                     Document doc = Jsoup.connect("http://google.com")
                                .userAgent("Mozilla")
                                .get();
                    // get page title
                    String title = doc.title();
                    System.out.println("title : " + title);
                    // get all links
                    Elements links = doc.select("a[href]");
                    for (Element link : links) {
                        // get the value from href attribute
                        System.out.println("\nlink : " + link.attr("href"));
                        System.out.println("text : " + link.text());
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            callback.onModifiedTextView(response);
            return response;
        }
        @Override
        protected void onPostExecute(final String title) {
            callback.onModifiedTextView(title);
        }  
    }
    public void onClick(View view) {
        DownloadWebPageTask task = new DownloadWebPageTask(this);
        task.execute(new String[] { "http://www.google.com" });
    }
}
 
     
     
     
    