2012-03-01 8 views
1

Androidでネット接続の変更が発生したときにBroadCast Receiverを開始します。 BroadCast Receiverサーバーからデータをフェッチする非同期タスクを処理するサービスを開始します。私のデバイスでテストすると、サービスOnCreateが初めて "Hurray!"メソッドで実行されているときに問題はほとんど変わっていません。しかし、私はネットワークを切断し、再び接続しようとします。 BroadCastは読み取りであり、サービスではありません。私はここに何かを逃していますかまたはこれはバグですか?私のサービスを開始するときに意図的なアクションがあるはずですか?私を助けてください。Androidサービスクラス - OnCreateは一度だけ呼び出されます

+0

を私はOnStartメソッドメソッドが正常に動作し、それがOnCreate関数と呼ばれていないが、すべての時間を開始することも気づくことができます:

これはthis文書が伝えるものです!なぜこのことが分かるのですか? – Wesley

答えて

7

のonCreate方法は、サービスのライフサイクル全体まで、一度だけ実行されます。ただし、onStartCommandメソッドへの呼び出しは、startServiceを呼び出して複数回行うことができます。あなたのサービスがが壊れてになってから再び実行された場合は、を作成してを再度呼び出します。

onCreate()

The system calls this method when the service is first created, to perform one-time setup procedures (before it calls either onStartCommand() or onBind()). If the service is already running, this method is not called.

+0

お返事ありがとうございました! – Wesley

+0

onCreateで1回だけ?私は自分のアプリをデバッグし、毎回電話をかけます – delive

+0

今、私はデバッグを試みましたが、インターネットの増分が見えません...私は混乱しています... – delive

2

onCreateサービスの方法は初めてサービスを開始するときにのみ呼び出されます。

あなたはstopServiceまたはstopSelfの方法でサービスを停止しない限り、サービスが実行され、のonCreateが再び呼び出されることはありません。

しかしonStartCommandあなたは

STARTSERVICEを呼び出すたびに詳細をお知りに呼ばれます:サービスでAndroid Services

+0

stopService/stopSelfでサービスを終了してもonCreateを呼び出す方法はありますか? –

関連する問題