When i use AsyncTask i often use constructor to send parameter to it. But i also know that we can send parameters directly to AsynkTask like:

**Calling:** `new MyAsync().execute(stringUrl);`

**Defination:** `public class MyAsync extends AsyncTask<String, Void, String> {...`
but i use:

**Calling:** `new MyAsync(stringUrl).execute();`

**Defination:** `public class MyAsync extends AsyncTask<Void, Void, Void>{
MyAsync(String url){.... }`

I want to know is there any difference between these two on behalf of performance or standard coding and which one is better?