In Apress Pro Android 4 the author has said that:
[...] context of currently running activity will no longer be valid when the device is rot
If you want to restore the previous activity, why not go for onSaveInstanceState and restore it later on.
Check this link for more details
Saving application state
Somewhere in your AsyncTask
you'll want to pass in your activity. Then you'll save that reference in a weak reference. Then you can dereference and use it again in onPostExecute
.
Class member:
WeakReference<Activity> weakActivity;
Somewhere in AsyncTask
, probably either constructor or onPreExecute
:
weakActivity = new WeakReference<Activity>(activity);
In onPostExecute
:
Activity activity = weakActivity.get();
if (activity != null) {
// do your stuff with activity here
}
Here is an example of WeakReference to store a context;
WeakReference<Context> cReference = new WeakReference<Context>(getApplicationContext());
Now we can use this weakReference to do Activity/Context related work.