2016-10-03 4 views
0

私が取る手順を監視するフィットネスアプリを作成しようとしています。私は今、ほぼ7日間テストしており、これを達成するために本当に苦労しています。画面がオフのときに実行されるアプリの作成

これまでのところ、画面がオンのときに実行されるコードを作成することができましたが、1-3分後に画面がオフになった後に実行を停止します。私のコードでは、1分、10秒、または1秒ごとに単語を保存するだけで、3つの構成すべてでテストしました。私を追加するには

  • AlartManager(差分アラームのすべて)
  • WakefulBroadcastReceiver
  • Broadcastreceiver
  • サービス(StartForeground)
  • ウェイクロック
  • 私は次のように使用してみました

    アプリをホワイトリストに追加して、Samsungデバイスの「Dozeモード」を無効にしてください。

  • 完全にバッテリーの最適化から

をアプリを削除するには、私が説明するように、それらのすべてが、プリフォーム、私のPC上の10個の異なる例を乗り越えました。だから私は別のアプローチを試みて、単純なまっすぐな質問をします。

試験デバイス

HTC M8 1アンドロイドV6.0.1

サムスンギャラクシーS6エッジアンドロイドV6.0.1

質問

私が欲しいのは、実行可能なコードです画面が黒い場合は、30分以上経過しても表示されます。 1-3分だけではありません。 1つの指でバランスをとるよりも難しいようです:-)

誰かが正しいコードで私を助けて正しい方向に進むことができますか?

この質問に実際のコードを投稿していないため、私はこのポストは

前の質問67のスクロール長く:-)であろうと、たくさんのことを試してみましたので、それは適切ではないと感じました申し訳ありません

あなたが私がここで望むものをacvieveするために前に作成したコードを見たい場合は、投稿です。 Android OS shuts down the Wakelock + AlarmManager after a few minutes

+0

「ステップ」の意味を定義できますか?ユーザーの高さと移動距離に基づいて計算された値は、実際には加速度計の変化を計算していますか? –

+0

はい。あなたが取るすべてのステップは一歩です。それ以上のことはありません。 Androidのlibにセンサーがあります。それはすでに取られたステップを数えることができます。とにかく、ステップがどのように計算されるかはそれほど重要ではありません。 – Daniel

+0

私はあなたの前の質問であなたが試したことに気付いた:http://stackoverflow.com/questions/35666127/difference-between-setandallowwhileidle-and-setexactandallowwhileidle - HTCとサムスンの両方のあなたのテストプロセスを記述することができます。 –

答えて

0

あなたはこのようなエグゼキュータでこの種のものを行うことができます。

scheduler = Executors.newSingleThreadScheduledExecutor(); 

    scheduler.scheduleAtFixedRate 
      (new Runnable() { 
       public void run() { 
        // your stuff goes here 
       } 
      }, 0, 10, TimeUnit.SECONDS); 
+0

いくつかのコードを明確にすることはできますか? – Daniel

+0

私はあなたが実行したいものを除いて、あなたがコードを必要としているとは思わない - そのコードは中間のビットで呼び出すもの(//あなたのもの)を実行します。 書かれているように、ttは10秒ごとに実行されますが、パラメータは変更できます。 –

0

私は似た何かを持って、私のアプローチは、サービスまたはサービスの意図でこれを処理することです。サービス自体は、次回実行するためにAlarmManagerをスケジュールするので、サービスが開始されるたびにインテントが処理され、最後に次回アラームを設定し直す必要があります。

Androidが反復アラームであるか、スケジュールがお互いに短すぎる場合は、このアプローチがあまり好きではないということです。 15分おきに実行されるものがあれば問題ありません。

関連する問題