30842


androidで、Sensor.TYPE_STEP_DETECTORを使用して歩数計アプリを作成しようとしています。  
serviceでTYPE_STEP_DETECTORの結果を取得して、アプリ内のDBに日時と歩数を保持しようとしています。  
よって、serviceは常に動作しておく必要があります。

絶対に死なないserviceを作成するにはどうすればよいのでしょうか？

現状は、onStartCommandの戻り値で、START_STICKY を返却しています。

・アプリを終了  
・履歴から削除  
・EclipseのDDMSのSTOPボタンで削除  
上記の場合は、しばらくするとサービスが再起動しました。

・アプリのデータ削除  
上記の場合は、サービスが再起動しませんでした。

絶対に死なないサービスを作成する方法はあるのでしょうか？  
何卒アドバイスをよろしくお願い致します。


CC BY-SA 3.0
2016-12-02T07:54:37.703
30832
2016-12-02T13:15:26.377
7212
question
android
androidで絶対に死なないserviceを作成するには


絶対に死なないわけではありませんが、  
定期的に alarm を BroadcastReceiver で受け取って、そこから startService() するのはいかがでしょう?
死んでしまっても再起動することができます。

または、startForeground() するとかなり死ににくくはなります。

余計なお世話かもしれませんが、歩数計なら TYPE_STEP_DETECTOR より TYPE_STEP_COUNTER の方が適しているのでは?
という気もしました。


CC BY-SA 3.0
2016-12-02T13:15:26.377
30842
2016-12-02T13:15:26.377
5288
30832
answer