4

メインアプリの一部であるウィジェットがあります。通常、アプリが更新されると、ウィジェットがクリックされたときにユーザーをメインアプリのアクティビティに移動させるPendingIntentが作成されます。ただし、エラーが原因でメインアプリがOSによって強制的に停止または強制終了された場合、ウィジェットをクリックするとウィジェットの応答が停止します。onReceiveメソッドが呼び出されていないため、ブロードキャストの受信も停止すると思います。

これが私がマニフェストに持っているものです:

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

ウィジェットコードは、メインアプリとは別のパッケージに含まれています。

4

1 に答える 1

4

ただし、エラーが原因でメインアプリがOSによって強制的に停止または強制終了された場合、ウィジェットをクリックするとウィジェットの応答が停止します。onReceiveメソッドが呼び出されていないため、ブロードキャストの受信も停止すると思います。

Android 3.1以降では、ユーザーが他の手段(ホーム画面ランチャーなど)を使用してアクティビティの1つを手動で起動するまで、ユーザーが強制的に閉じた場合、アプリウィジェットは確実に機能しなくなります。

ただし、「エラーのためにOSによって強制終了された」ということは、この影響をAFAIKに与えるべきではありません。これを実証する再現可能なテストケースを作成できる場合は、調査できるようにどこかに投稿してください。

于 2012-06-29T19:24:14.677 に答える