0

このようなレシーバーを実装しました(マニフェストファイル内)

    <receiver android:name="com.phonelight.realparrot.RecorderBroadcastReceiver">
        <intent-filter>
            <action android:name="android.intent.action.PHONE_STATE">        
             </action>
                 </intent-filter>
        </receiver>

電話の状態が変化すると、レコーダ ブロードキャスト レシーバが呼び出されます。すべて順調。ただし、デバイスを再起動すると、アプリケーションを実行するまでレシーバーは呼び出されません。

起動後にこのレシーバーを登録する (呼び出すのではなく) 必要があります。

多くの感謝、

[編集]

次のレシーバーをマニフェストファイルに追加することで問題を解決しました

   <receiver android:name="com.phonelight.realparrotpro.RecorderBroadcastReceiver">
                <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>

ただし、Java コードに RecorderBroadcastReceiver を登録しませんでした。上記の受信機のみを追加しました。これは、アプリから何かを呼び出すと、マニフェスト ファイルに記述されているすべてのレシーバーが登録されることを意味します。

4

1 に答える 1

0

onBootComplete のレシーバーを作成し、そこにレシーバーを登録する必要があります。このようにして、再起動後もレシーバーが登録されます。

<receiver android:name="App_Receiver">
<intent-filter>
    <action android:name="android.intent.action.BOOT_COMPLETED" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

于 2012-12-03T15:59:22.003 に答える