2011-06-29 16 views
1

いくつかの環境設定が変更された場合、私のアンドロイドサービスを再起動したいですが、サービスクラスの再起動メソッドのようなものはありませんか?すべてのクラス変数などをリセットする何らかのリセットメソッドを作成する以外は、サービスを再起動する方法はありますか?ヒントありがとう!Androidサービスを再起動しますか?

答えて

1

もう一度呼び出すと、onStartCommand()が再び呼び出されると思います。 これはあなたのために働くかもしれません。

*生存していない場合はonCreate()を実行します。

コールSTARTSERVICE次のようにあなたのサービスクラスでoverrideonStartCommand()に持って

+0

実際、サービスが既に実行されていても、サービスを再開したいと考えています。私は特にonCreate()をもう一度呼びたいと思う。私は内部からサービスを再開したい。 –

+0

私は確信が持てません。本当にサービスがどのように始まるのか分かりません。それはkillself()でも再起動はできますか?迷っています。アクティビティはどうですか? onclose()から呼び出され、再度起動するブロードキャストリスナについてはどうでしょうか?ちょっとした考え。 – Saariko

0

トリックを行います再び(意図)、:

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    super.onStartCommand(intent, START_STICKY, startId); 
    return START_STICKY; 
} 

定数変数START_STICKYを再起動するようにシステムを指示しますそれが殺されるならサービス。

あなたが検出したときに優先順位の変更を通知するためにlistenerを実装/持っている必要がありますし、onStart()メソッド内でそのリスナーに登録するとonDestroy()内でそのリスナーの登録を解除する必要があります。

関連する問題