androidandroid-activityandroid-broadcast

How to create BroadcastReceiver without Activity/Service?


I'm trying to create BroadcastReceiver without activity/service. While I've no problem registering and executing the code when an activity is present in the code when I remove the activity it fails.

I do register the BroadcastReceiver using the manifest(!) But it is not being called when the activity is removed from the project.

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <receiver android:name="com.ge.test.InstallsListener" >
        <intent-filter>
            <data android:scheme="package" />
            <action android:name="android.intent.action.PACKAGE_ADDED" android:priority="100"/>                
        </intent-filter>
    </receiver>
</application>

Thanks.


Solution

  • But it is not being called when the activity is removed from the project.

    On Android 3.1 and higher, the user must launch one of your activities before any manifest-registered BroadcastReceiver will work.

    See the Android 3.1 release notes, specifically the "Launch controls on stopped applications" section.