1

アラームの BroadcastReceiver の onReceive を介してサービスを起動することに問題はありますか? 私のサービスでは、onCreate または onStart メソッドが呼び出されることはありません。

My Alarm のレシーバーはウェイクロックを取得し、context.startService(new Intent(context, FmiDaemon.class)); を呼び出します。(onRecieve パラメーターで指定されたコンテキスト)、3 秒間待機してから、ロックを解放します。

私のサービスには、onCreate と onStart の 2 つのメソッドがあります。onCreate は別のウェイクロックを取得し、onStart の最後でウェイクロックを解放し、「stopSelf」を呼び出します。どちらのメソッドもデータをログに送信することになっていますが、決して呼び出されないため送信することはありません。

問題はどこだ?それは使用するのに悪い「コンテキスト」ですか?onCreate と onStart は実装するメソッドが間違っていますか?

4

2 に答える 2

1

古い質問ですが、他の誰かがこの問題を抱えている場合:

1) 受信者クラス onReceive の先頭にログ エントリを追加します。ログにこのメッセージが表示されない場合は、アラームが正しく設定されていないか、受信機がマニフェスト ファイルに含まれていません。

2) レシーバー クラスを AndroidManifest.xml に追加します。

<receiver android:name="MyBroadcastReceiver" />

3) 私の startService() は次のようになります。

Intent newIntent = new Intent(context, MyServiceClass.class);

context.startService(newIntent);
于 2011-01-07T19:27:59.117 に答える
0

これを AndroidManifest.xml ファイルの application タグ内に追加してみてください。

<service android:name="com.yourpackagetoyourserviceclass.FmiDaemon"/>
于 2009-07-17T08:44:38.547 に答える