私のプログラムで、新しいバージョンを確認したい (からデータを取得するHTTP
)。
この関数は完全に機能しますが、X ごと (構成可能、1 時間、1 日など) にバックグラウンドで実行したいと考えています。
だから私はこのコードを書いた:
Timer mTimer1 = new Timer();
PowerManager pm = (PowerManager) this.main.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = this.pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, MainActivity.PROGRAM);
PowerManager.WakeLock wl.acquire();
TimerTask mTt1 = new TimerTask()
{
public void run()
{
mTimerHandler.post(new Runnable()
{
public void run()
{
// Do the check...
}
});
}
};
(この関数は から派生していない別のクラスにあるため、 を呼び出すことができるようにActivity
、コンストラクターに親クラスを渡しました。これは として宣言されています)。
さて、新しいバージョンのチェックを開始すると、1 時間後 (つまり私の設定) にチェックインすると、スレッドが実行されていないことがわかります...this.main
getSystemService
Variable
private MainActivity main
Timer
Logs
インターネットで検索したところ、 を使用する必要があることがわかりましPARTIAL_WAKE_LOCK
た。
なぜ私はこの問題を抱えているのですか?
どうもありがとう!ルカ・ベルトンチェロ