Renaming helps sometimes to prevent such accidents, for instance if
you know the task should always be created from an activity you can do
like this:
*public class MyAsyncTask extends AsyncTask<...> {*
* private Context appContext;*
*
* public MyAsyncTask(Activity activity) {*
* appContext = activity.getApplicationContext();*
* }*
* ...*
*}*
On 10 Aug, 05:02, Zsolt Vasvari <[email protected]> wrote:
> Yeah, this is what I do and works fine, though I hate it that I cannot
> declare the member variable as an "ApplicationContext" and instead
> having to declare it as a Context. The reason I hate this is that I
> cannot provide a compile time checking so that I don't accidentally
> hold onto the the Activity context. I think ApplicationContext
> should have been a base interface and Context should have just
> extended that.
>
> On Aug 9, 10:28 pm, Streets Of Boston <[email protected]> wrote:
>
>
>
>
>
>
>
> > Instead of holding on to the Activity in the AsyncTask, just hold on to its
> > application-context:
>
> > *public class MyAsyncTask extends AsyncTask<...> {*
> > * private Context context;*
> > *
> > *
> > * public MyAsyncTask(Context context) {*
> > * this.context = context.getApplicationContext();*
> > * }*
> > * ...*
> > *}*
>
> > If you use the passed context just to get strings and such from the
> > resource-manager, this should work fine.
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en