2012-02-29 14 views
0
アンドロイド用自動プロファイルチェンジャーアプリケーションに取り組んで

イム...これは、Android上で開発し、私の第二のアプリケーション・イムので、のAndroidのDev:真夜中の計算過去の時間スパン

...アンドロイド開発のすべての添えものを知りません

何らかの方法...タイマーコードが実行されると思われる次回の計算で問題が発生しています...主に問題は、深夜の翌日にかけての時間です...

例えば、ユーザが午後10時30分に開始し、翌日の午前8時になるスリーププロファイルを作成したとします。これを例として、コード内に配置された適切な条件の中に実行が入りますが、nextUpdateIntervalない正確に設定されています...まだ翌日までの時間を計算/計算する方法を見つけようとしていますが、この時点でIMがこのタスクを過度に複雑にしていると思っていますか?助言がありますか?ここ

は、コードの抜粋です:

timer.scheduleAtFixedRate(new TimerTask() { 
public void run() { 
    //..... some code to convert user stored times into proper time formats 
    //PM to PM 
    if(isFromTimePM == true && isToTimePM == true){ 

    }//PM to AM 
    else if(isFromTimePM == true && isToTimePM == false){ 
     if(rightNowDate.getTime() >= fromDate.getTime() && rightNowDate.getTime() >= toDate.getTime()){ 
      foundProfileIndex = i; 
       i = profileArrayListSize; 


      nextUpdateInterval = rightNowDate.getTime() - toDate.getTime(); 
     }     
    }//AM to AM 
    else if(isFromTimePM == false && isToTimePM == false){ 

    }//AM to PM 
    else if(isFromTimePM == false && isToTimePM == true){ 

    }}, 0, nextUpdateInterval); 

おかげで、 P

答えて

0

なし - firstDateは私がやってしまったことは以下の通りであった、これまで必要だった:

  1. がのcompareToを使用し、日付オブジェクトにミリ秒を変換
  2. ミリ秒にすべての回を変換'to'の日付を現在の日付/時刻と比較する
  3. プロファイル一致が見つかった場合は、次の実行日として 'to'日付を保存しました
  4. reScheduleTimer meタイマーを再調査するために.schdule(timertask、date)を使用しました...
0

はPMとAMを忘れます。あなたは日付を使用しているように見えるので、getTime()メソッドを使用すると、エポックから経過したミリ秒数が表示されます。単にこれらの2を引くと、あなたはミリ秒単位で時間間隔を持つことになります。

long nextUpdateInterval = secondDate.getTime() - firstDate.getTime(); 

nextUpdateIntervalが長く、「連続するタスク実行のミリ秒単位の時間」です。このsecondDateの

+0

実際にはAM/PMの条件はロジックをフレックスするだけです'rightNow'時間がユーザ設定時間内に収まるかどうかを調べるために、私が見るとおり、私はちょうどあなたがnextUpdateIntervalを設定するために述べたことをします:nextUpdateInterval = rightNowDate.getTime() - toDate.getTime(); ....これは正しい次の実行時間を設定していません –

関連する問題