I have 2 classes:
MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new MyAsyncTask().execute("string");
}
public void setSomething(int param) {
// ... some code here ...
}
}
and
MyAsyncTask.java
public class MyAsyncTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... str) {
return "Someting here";
}
@Override
protected void onPostExecute(String jsonStr) {
// how to call setSomething(param) from here?
}
}
How to call setSomething(param) from MyAsyncTask?
Pass a reference of MainActivity
to MyAsyncTask
:
public class MyAsyncTask extends AsyncTask<String, Void, String>
{
private MainActivity mainActivity;
public MyAsyncTask(MainActivity mainActivity)
{
this.mainActivity = mainActivity;
}
}
Then, whenever creating an instance of MyAsyncTask
inside the class MainActivity
, pass this
(MainActivity
instance) to the constructor:
new MyAsyncTask(this).execute();