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 <zvasv...@gmail.com> 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 <flyingdutc...@gmail.com> 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 android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en