Thank you very much :)

On 23 Feb., 13:52, Wouter <[email protected]> wrote:
> Hi,
>
> If you create the BroadcastReceiver as an inner class, you do have
> access in the broadcastreceiver to anything in your activity.
>
> So in you activity, do something like:
>
>         /**
>          * Receive messages from our Service
>          */
>     private BroadcastReceiver receiver = new BroadcastReceiver() {
>         public void onReceive(Context context, Intent intent) {
>             String data = intent.getStringExtra("testdata");
>             iAmAMethodOfTheContainingActivity(data);
>         }
>     };
>
>         protected void onResume() {
>                 super.onResume();
>
>                 // register as a BroadcastReceiver for Intent action from our
> Service
>                registerReceiver(receiver, new IntentFilter
> (MyService.SOME_ACTION));
>         }
>
>             public void iAmAMethodOfTheContainingActivity(String data)
> {
>                    System.out.println("Received: " + data);
>             }
>
> And in your service, something like:
>
>                         Intent intent = new Intent(SOME_ACTION);
>                         intent.putExtra("testdata", "Some result");
>                         sendBroadcast(intent);
>
> Note that communication in the other direction (calling the service
> from the activity) can be done in a similar way, using startService
> from the activity, and passing the arguments through the Intent.
>
> hth,
>
> Wouter
>
> On Mon, Feb 23, 2009 at 10:26 AM, Marius Shekov <[email protected]>
> wrote:
>
>     Hey Wouter,
>
>     Thanks for your reply. However, I am not really able to understand
> what you mean with "If you then use a BroadcastReceiver IN the calling
> activities". The only thing I know is how to create (separate)
> BroadcastReceivers (they are in a separate .java file, a separate
> class, which must be this way, because in Java you can only use
> "extends" for one class, there's no multiple inheritance) and how to
> register them (using the xml file for example) and how to receive
> intents with them. However, once I have the intent in the broadcast
> receivers onReceive() method, it's just as useless as I do not know
> how to inform my activity about that. Something like
> context.startActivity(i) in onReceive() will not work, unless I set
> i.setFlags(FLAG_ACTIVITY_NEW_TASK) which I do absolutely not want (I
> want to inform an already existing activity and bring its stack to the
> front).
>
>     I hope that you could clarify what you meant in your email.
>
>     Greetings
>     NameZero912
>
>     -------- Original-Nachricht --------
>     > Datum: Sun, 22 Feb 2009 15:48:25 -0800 (PST)
>     > Von: Wouter <[email protected]>
>     > An: NameZero912 <[email protected]>
>     > Betreff: Re: Local service: how to tell activity when done?
>
>     > In your service, you can do 'sendBroadcast(Intent)', adding the
> result-
>     > data
>     > as Extra in the intent.
>     > If you then use a BroadcastReceiver in the calling activities
> (create,
>     > override
>     > onReceive, and register with 'registerReceiver'), it gets
> notified of
>     > the broadcast,
>     > and receives the data.
>     >
>     > hth,
>     >
>     > Wouter
>     >
>     > On Feb 22, 1:44 pm, NameZero912 <[email protected]> wrote:
>     > > Hi there,
>     > >
>     > > starting from the example ServiceStartArguments.java of the
> "API
>     > > demos", the service "ServiceStartArguments" is creating a new
> Handler
>     > > object (ServiceHandler) which does all the work in a separate
> thread.
>     > > Once that work is completed, how can I tell other components
> that my
>     > > work is finished, and also provide data (that resulted from
> the work)
>     > > to them?
>     > >
>     > > I tried something like startActivity
> (intent_transferred_via_msg) which
>     > > does not work, I'll get an exception because I call it
> "outside of the
>     > > service", which is technically true.
>     > >
>     > > Greetings
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to