私はこの例外を抱えています:
java.lang.RuntimeException: An error occured while executing doInBackground()
        at android.os.AsyncTask$3.done(AsyncTask.java:278)
        at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
        at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
        at java.util.concurrent.FutureTask.run(FutureTask.java:137)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
        at java.lang.Thread.run(Thread.java:856)
Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
        at android.os.Handler.<init>(Handler.java:121)
        at android.widget.Toast$TN.<init>(Toast.java:347)
        at android.widget.Toast.<init>(Toast.java:93)
        at android.widget.Toast.makeText(Toast.java:235)
        at com.problemio.TopicActivity$DownloadWebPageTask.doInBackground(TopicActivity.java:440)
        at com.problemio.TopicActivity$DownloadWebPageTask.doInBackground(TopicActivity.java:1)
        at android.os.AsyncTask$2.call(AsyncTask.java:264)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
        ... 5 more
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
        at android.os.Handler.<init>(Handler.java:121)
        at android.widget.Toast$TN.<init>(Toast.java:347)
        at android.widget.Toast.<init>(Toast.java:93)
        at android.widget.Toast.makeText(Toast.java:235)
        at com.problemio.TopicActivity$DownloadWebPageTask.doInBackground(TopicActivity.java:440)
        at com.problemio.TopicActivity$DownloadWebPageTask.doInBackground(TopicActivity.java:1)
        at android.os.AsyncTask$2.call(AsyncTask.java:264)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
        at java.util.concurrent.FutureTask.run(FutureTask.java:137)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
        at java.lang.Thread.run(Thread.java:856)
このコードで:
ダイアログ ダイアログ;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) 
{
 ....
dialog = new Dialog(this);
    Button submit = (Button)findViewById(R.id.submit_comment);   
    submit.setOnClickListener(new Button.OnClickListener() 
    {  
       public void onClick(View v) 
       {
          dialog.setContentView(R.layout.please_wait);
          dialog.setTitle("Submitting Your Comment");
          TextView text = (TextView) dialog.findViewById(R.id.please_wait_text);
          text.setText("Please wait while your comment is processed... ");
          dialog.show(); //this will show dialog 
          String c = comment.getText().toString(); 
          if ( c == null || c.length() == 0 )
          {
                try {
                    dialog.dismiss();
                } catch (Exception ee) {
                    // nothing
                }
          }
          else
          {             
              ...  
          }
       }
    });
    // Go to the database and display a list of problems
sendFeedback( problem_id , recent_topic_id );   
}       
public void sendFeedback(String problem_id , String recent_topic_id) 
{  
    String[] params = new String[] 
            { "url", problem_id , recent_topic_id };
    DownloadWebPageTask task = new DownloadWebPageTask();
    task.execute(params);        
}       
public class DownloadWebPageTask extends AsyncTask<String, Void, String> 
{
    @Override
    protected String doInBackground(String... theParams) 
    {
        String myUrl = theParams[0];
        final String problem_id = theParams[1];
        final String solution_section = theParams[2];
        String charset = "UTF-8";           
        String response = null;
        try 
        {                           
            String query = String.format("problem_id=%s&solution_section=%s", 
                     URLEncoder.encode( problem_id, charset),
                     URLEncoder.encode( solution_section, charset));
            final URL url = new URL( myUrl + "?" + query );
            final HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setDoOutput(true); 
            conn.setRequestMethod("POST");
            conn.setDoOutput(true);
            conn.setUseCaches(false);
            conn.connect();
            final InputStream is = conn.getInputStream();
            final byte[] buffer = new byte[8196];
            int readCount;
            final StringBuilder builder = new StringBuilder();
            while ((readCount = is.read(buffer)) > -1) 
            {
                builder.append(new String(buffer, 0, readCount));
            }
            response = builder.toString();      
        } 
        catch (Exception e) 
        {
            // What should I do here?           
        }
        return response;
    }
    @Override
    protected void onPostExecute(String result) 
    {       
        if ( result == null )
        {
            try {
                dialog.dismiss();
            } catch (Exception ee) {
                // nothing
            }                               
        }
        else
        if ( result.equals("no_suggested_solution_id") || result.equals("no_topic_id" ) )
        {               
            try {
                dialog.dismiss();
            } catch (Exception ee) {
                // nothing
            }                               
        }
        else
        { 
            if ( result.length() == 0 )
            {
                discussion.clear();
                DiscussionMessage message = new DiscussionMessage ( );
                message.setMessage("This section is empty.");
                discussion.add( message );                  
            }
            else
            {
                try
                {   
                    JSONArray obj = new JSONArray(result);
                    if ( obj != null )
                    {
                        discussion.clear();
                        TextView topic_instructions = (TextView) findViewById(R.id.topic_instructions);
                    } 
                    adapter.notifyDataSetChanged();                     
                }                   
                catch ( Exception e )
                {
                    e.printStackTrace();
                }
            }
            adapter.notifyDataSetChanged();                     
        }
    }    
この例外を発生させるために、ダイアログで間違って何をしているのか分かりますか?
ありがとう!