在我的程序中,我想检查一个新版本(从 获取数据HTTP
)。
该功能完美运行,但我希望它每隔 X 次(可配置、一小时、一天等)在后台运行。
所以我写了这段代码:
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
,所以我将父类传递给了构造函数this.main
,以便我可以调用getSystemService
。这Variable
被声明为private MainActivity main
)。
好吧,当我启动Timer
它检查新版本时,一个小时后(所以我的设置),我检查Logs
并看到线程没有运行......
我在互联网上搜索,我发现,我必须使用PARTIAL_WAKE_LOCK
,我这样做......
任何想法,为什么我有这个问题?
非常感谢!卢卡·贝通切罗