Fair enough argument. Perhaps the Intent class could have been made final.

On Tue, Jul 28, 2009 at 4:29 PM, Mark Murphy <mmur...@commonsware.com>wrote:

>
> R Ravichandran wrote:
> > I was experimenting with extending the Intent class but don't seem to
> > make it work properly. I am wondering if extending is even possible.
> > Here is the snippets.
> >
> > Code for custom intent:
> >
> > public class MyIntent extends Intent {
> >
> >    private MyClass myClass;
> >
> >    public MyIntent(String name, MyClass myClass) {
> >       super(name);
> >       this.myClass = myClass;
> >    }
> >
> >   public MyClass getMyClass() {
> >     return myClass;
> >   }
> >
> > }
> >
> >
> > Code for Intent broadcast:
> >
> >         MyClass myClass = new MyClass();
> >         Intent intent = new MyIntent("my_intent",myClass);
> >         sendBroadcast(intent);
> >
> > Code for BroadcastReceiver.onReceive(Intent intent):
> >
> >         MyClass myClass = null;
> >         if(intent instanceof MyIntent) {
> >            // do something
> >         }
> >         else {
> >           // probelm...
> >        }
> >
> > When this application runs, I don't see the MyIntent received properly.
> > In fact, 'intent instanceof MyIntent' seems to return false.
> >
> > What is wrong?
>
> Intents are designed to go between processes.
>
> Let's suppose that you were broadcasting a MyIntent, and it was received
> by another application, not written by you. Since it was not written by
> you and runs in its own process, it does not have access to the MyIntent
> class and therefore could not create an instance of that class.
>
> The Intent system uses some form of serialization (perhaps Parcelable)
> to transport Intents between processes. What your experiment
> demonstrates is that the same mechanism is used even within the same
> process.
>
> --
> Mark Murphy (a Commons Guy)
> http://commonsware.com | http://twitter.com/commonsguy
>
> Android 1.5 Programming Books: http://commonsware.com/books.html
>
> >
>

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

Reply via email to