2

BOOT_COMPLETEDインテントをキャッチしようとしています。受信機では、ログに何かを印刷するだけです。Logcatでこのエラーが発生し、入力したログステートメントが出力されません。マニフェストに許可を設定しました

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

また、レシーバーで必要なインテントフィルターを宣言しました。私は何が間違っているのですか?

4

2 に答える 2

3

私は何を間違っていますか?

あなたが提供した限られた情報を考えると、それは答えられません。おそらく、アクション文字列が間違っています<intent-filter>

これは、あなたが説明したことだけを行うサンプルプロジェクトです(LogCatにメッセージを書き込むブートタイムレシーバー)。

于 2011-09-06T20:19:39.390 に答える
2

私も問題を抱えていましたが、この回答を見つけて、CommonsWareのサンプルコードと比較して解決しました:

このエラーは、BroadcastReceiver の onReceive() メソッドで setResultData(...) を呼び出し、順序付けされていないブロードキャストに反応すると発生します。ブート ブロードキャストが順不同のようです。参照:開発者向けドキュメント

@Override
public void onReceive(Context context, Intent intent)
{
    try
    {
            Intent serviceIntent = new Intent(context, MyService.class);                
            context.startService(serviceIntent);
            // setResultData(null);
    }
    catch (Exception exception)
    {
        exception.printStackTrace();
    }
}
于 2012-07-31T12:55:22.887 に答える