[android-developers] Re: Inadvertent breakage by SDK going forward

2010-02-15 Thread Streets Of Boston
That would be very 'icky'... I hoped that the 'targetSdkVersion'
setting could prevent this.

On Feb 12, 7:20 pm, jasper  wrote:
> Does this truly mean that even if I compile to the 1.6 platform, if my
> code implements a 2.1 callback method, that method will *never* be
> invoked on 1.6 devices but *will* be invoked on 2.1 devices?  Even
> though I compiled to the 1.6 platform?  That's crazy!
>
> On Feb 12, 4:01 pm, Mike Collins  wrote:
>
>
>
> > Ran into the below issue and wanted to see what solutions people
> > have...
>
> > In SDK 1.6 Activity did not have a method onBackPressed (), in 2.0 it
> > appeared.
> > Using the current docs I added an onBackPressed to a couple of our
> > classes.
> > We build against 1.6 (customer requirement) it seemed a bit odd that
> > the compiler
> > got upset when I put in a @Override, so I took it out and proceeded to
> > verify that
> > everything was working, which it was, the method was being invoked
> > exactly as
> > expected.
>
> > Turns out this works only on phones/emulators with 2.0 or greater
> > firmware.  On
> > 1.6 firmware it fails to function at all because nobody calls it.
>
> > OK, with hindsight it's obvious what's happening and we've made the
> > @Override
> > an error not a warning.
>
> > But it raises the issue of how to I protect my app if in the future
> > Android implements
> > a method that collides with the name of method I invent for my derived
> > class.  In
> > this case Android will be calling my method at inappropriate times and
> > expecting
> > it to do things that it probably doesn't do.
>
> > One solution is prefix every method of ours of every class that
> > derives from an Android
> > class with something specific to the app.  Or use a different naming
> > convention, like
> > always use an initial capital or an underscore etc.
>
> > thoughts?
> >   mike- Hide quoted text -
>
> - Show quoted text -

-- 
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


[android-developers] Re: Inadvertent breakage by SDK going forward

2010-02-15 Thread jasper
Does this truly mean that even if I compile to the 1.6 platform, if my
code implements a 2.1 callback method, that method will *never* be
invoked on 1.6 devices but *will* be invoked on 2.1 devices?  Even
though I compiled to the 1.6 platform?  That's crazy!




On Feb 12, 4:01 pm, Mike Collins  wrote:
> Ran into the below issue and wanted to see what solutions people
> have...
>
> In SDK 1.6 Activity did not have a method onBackPressed (), in 2.0 it
> appeared.
> Using the current docs I added an onBackPressed to a couple of our
> classes.
> We build against 1.6 (customer requirement) it seemed a bit odd that
> the compiler
> got upset when I put in a @Override, so I took it out and proceeded to
> verify that
> everything was working, which it was, the method was being invoked
> exactly as
> expected.
>
> Turns out this works only on phones/emulators with 2.0 or greater
> firmware.  On
> 1.6 firmware it fails to function at all because nobody calls it.
>
> OK, with hindsight it's obvious what's happening and we've made the
> @Override
> an error not a warning.
>
> But it raises the issue of how to I protect my app if in the future
> Android implements
> a method that collides with the name of method I invent for my derived
> class.  In
> this case Android will be calling my method at inappropriate times and
> expecting
> it to do things that it probably doesn't do.
>
> One solution is prefix every method of ours of every class that
> derives from an Android
> class with something specific to the app.  Or use a different naming
> convention, like
> always use an initial capital or an underscore etc.
>
> thoughts?
>   mike

-- 
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


[android-developers] Re: Inadvertent breakage by SDK going forward

2010-02-15 Thread jasper
And doesn't this also mean that there's an implicit requirement that I
prefix my methods with a tag to avoid future version name collisions?

If I have a method in my 1.6 app called MyView.doSomething(), and
MyView extends an Android class like TextView, and subsequent to 1.6,
Google adds a method to TextView called "doSomething()", my method
would overwrite Google's method, even though I'm compiling for the 1.6
platform?

If Mike's post is true, then even if I compile with the 1.6 target and
run on the 2.1 target, the 1.6 app's method will overwrite the 2.1
method.

Therefore, this is an implicit requirement that I should prefix all of
my methods with my own tag like myDoSomething().

But I already have hundreds of methods in my app - what a pain.


On Feb 12, 4:01 pm, Mike Collins  wrote:
> Ran into the below issue and wanted to see what solutions people
> have...
>
> In SDK 1.6 Activity did not have a method onBackPressed (), in 2.0 it
> appeared.
> Using the current docs I added an onBackPressed to a couple of our
> classes.
> We build against 1.6 (customer requirement) it seemed a bit odd that
> the compiler
> got upset when I put in a @Override, so I took it out and proceeded to
> verify that
> everything was working, which it was, the method was being invoked
> exactly as
> expected.
>
> Turns out this works only on phones/emulators with 2.0 or greater
> firmware.  On
> 1.6 firmware it fails to function at all because nobody calls it.
>
> OK, with hindsight it's obvious what's happening and we've made the
> @Override
> an error not a warning.
>
> But it raises the issue of how to I protect my app if in the future
> Android implements
> a method that collides with the name of method I invent for my derived
> class.  In
> this case Android will be calling my method at inappropriate times and
> expecting
> it to do things that it probably doesn't do.
>
> One solution is prefix every method of ours of every class that
> derives from an Android
> class with something specific to the app.  Or use a different naming
> convention, like
> always use an initial capital or an underscore etc.
>
> thoughts?
>   mike

-- 
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


[android-developers] Re: Inadvertent breakage by SDK going forward

2010-02-15 Thread Mike Collins

Reworking the platform isn't an option...guess that leaves me with
some naming convention.

thanks,
  mike

-- 
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