I have a widget that is a part of my main app. Usually when the app is updated, a PendingIntent is created that takes the user to an Activity in the main app when the widget is clicked. However, when the main app is force stopped or killed by the OS because of an error, the widget stops responding when it is clicked. I believe it also stops receiving broadcasts because the onReceive method is not being called.
Here is what I have in the manifest:
<receiver android:name=".widgets.AppWidget" android:label="@string/widget_name">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
<action android:name="com.myApp.android.widgets.CLICK.start"></action>
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/appWidget_provider"/>
</receiver>
The widget code is in a separate package from the main app.
On Android 3.1+, your app widget will definitely stop working if the user force-closes you, until the user manually launches one of your activities by other means (e.g., home screen launcher).
However, “killed by the OS because of an error” should not have this effect AFAIK. If you can create a reproducible test case that demonstrates this, post it somewhere so we can examine it.