複数のブロードキャスト(たとえば、 ACTION_TIME_TICK)をマニフェストに登録できないことがわかりました。は、を介して明示的に登録する必要がありますContext.registerReceiver()
。ACTION_USER_PRESENTブロードキャストインテントに問題があります。具体的には、エミュレーターでテストしましたが、アプリケーションはエラーで強制終了し続けます。
08-30 09:44:23.397: ERROR/AndroidRuntime(290): java.lang.RuntimeException: Unable to start receiver me.turnerha.RegisterListeners: java.lang.IllegalArgumentException: Receiver not registered: me.turnerha.RegisterListeners@43d05690
これはによって引き起こされます
08-30 09:44:23.397: ERROR/AndroidRuntime(290): Caused by: java.lang.IllegalArgumentException: Receiver not registered: me.turnerha.RegisterListeners@43d05690
私のマニフェストはかなり単純です:
<receiver android:name=".RegisterListeners">
<intent-filter>
<action android:name="android.intent.action.SCREEN_ON" />
</intent-filter>
</receiver>
何かご意見は?私は基本的に、アプリケーションのインストール後できるだけ早くウェイクアップするレシーバーを作成しようとしています。初めて起動すると、数人のリスナーが登録され、その後、登録が解除されるため、再度呼び出されることはありません。(アプリがインストールされた直後に、少しのセットアップを可能にするために、インテントが起動されたらいいのにと思います:))