Let say that I have two Activity to develop in Android. Upon the end user click a button in Activity A, the application supposed to pull data off a JSON API and present that information on Activity B.
So my question is, what’s the best practice or pattern? i.e.
- Activity A will call an AsyncTask and perform JSON call. Pull the data, push it into the Intent via putExtra, and call Activity B?
- Activity A will call Activity B, Activity B onCreate will call an AsyncTask and perform the JSON call?
- Other suggestions?
Which one is the prefer pattern?
And which gives better user experience? (e.g. imagine where the error dialog will be if connection fail to the server.)
I think normally something of your #2 approach is done. In most cases, though, you need to tell Activity B what type of information to request from the JSON API. So say in Activity A you are choosing an item from a list, and Activity B will get more information about that item. In this example Activity A will simply pass a reference to which item was selected, and then Activity B can use that reference to make a JSON request for more information about that item. Does that make sense?
I usually try to pass as little information as I can in Intent extras so I would steer clear of your first solution.