tags:

views:

46

answers:

2

I have an application that will accept URLs from the built in web browser via the "Share page" menu item. I'm using the send intent and it works just fine. However, I'd like to accept a URL and process it in the background without bringing my application to the front. I don't want the user to have to actually leave the web browser. It will notify the user it has finished processing the URL with a Toast message. I'm just not sure what type of activity should be used for this.

A good example of this behavior is the "Read Later" instapaper application in the android market. Any help would be greatly appreciated.

+1  A: 

You should implement a background service which notifies your application once it has finished processing the url.

Soulreaper
+1  A: 

AFAIK, ACTION_SEND only works for activities, not services. Hence, you will need to create an activity that shares things. However, if all you are doing is displaying a Toast and no actual activity UI, you can use Theme.NoDisplay to suppress the otherwise-empty activity UI from showing up:

<activity android:name="TwitterSender"
        android:label="@string/sender_name"
        android:theme="@android:style/Theme.NoDisplay">
    <intent-filter android:label="@string/sender_name">
        <action android:name="android.intent.action.SEND" />
        <data android:mimeType="text/plain" />
        <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter>
</activity>

You can see the complete example of this technique in one of my book samples.

CommonsWare
Thanks, that's exactly what I wanted!
Justin