2017-01-17 12 views
-1

現在、私はphonegapを使用してクロスプラットフォームアプリケーションを開発しています。現在、私はそのジョブのネイティブ部分をやっています。アプリはバックグラウンドであなたの地位を地理的に把握する必要がありますが、それは完全に行いますが、サービスが停止して再開しない場合があります(地下鉄にいるときや、私がどこにいるのかわからない時もあります) その視点私は多くの研究をしていくつかのものを見つけましたが、それは助けになりませんでした: '( もちろん、私のバックグラウンドサービスはアンドロイドにありますので、START-STICKYフラグを追加しました。 AndroidとPhonegap、ジオロケーションのバックグラウンドサービスが停止しました

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

    System.out.println(DateFormat.getTimeInstance(DateFormat.MEDIUM).format(new Date())+ " : " + "onStartCommand run"); 
    Log.d(TAG, "onStartCommand run"); 

    initialiseService(); 
    return START_STICKY; 
} 

keepRunning

のPS:私の悪い英語のため申し訳ありません:/ あなたはより多くの情報が必要な場合は、私に尋ねる:)

+0

オーバーライドontaskRemoved方法であなたがServiceを使用して、別のThread(またはAsyncTask)を作成する必要があります実行していることを意図している場合。サービスを再開するには –

+0

'onTaskRemoved'はサービスライフサイクルの一部ではなく、' onDestroy'を使うべきです。 – Ryan

答えて

0

をは何ですか10やってる? ServiceまたはIntentServiceを延長していますか? initialiseServiceがブロックされ、return START_STICKYが返されないことがあります。

あなたのタスクは、長いonStartCommand

+0

プライベートvoid initialiseService(\t \t JSONObject tmp = initialiseLatestResult(); \t \t this.mServiceInitialised = true; } 最後のjsonオブジェクトがまだ存在していない場合は、それを初期化します。 このクラスについては、サービス – Fabien

+0

から拡張されています。したがって、initialiseService()がSTART_STICKYの戻りをブロックしていたことを確認しようとしましたが、問題ではないようです。実際に私がSTART_STICKYを使用すると、サービスはほとんどの時間を再起動しようとしますが、時には停止してもう試しません。とにかく別のフラグSTART_REDELIVER_INTENTでSTART_STICKYを変更しようとしましたが、別の問題が追加されました。私のサービスからの通知はもう届きません: '( 私はもう一度START_STICKY ^^を置くと思います。追加? – Fabien

関連する問題