【发布时间】:2016-09-16 20:11:47
【问题描述】:
我制作了一个启动服务的安卓应用。 我希望它每 30 秒运行一次。请不要担心电池问题,它不是一个公共使用的应用程序,并且在玩游戏的整个星期内它只会运行一次 3-4 小时。
现在我面临的问题是,最初当应用程序启动和服务启动时,它按预期每 30 秒运行一次,但是一旦手机被锁定或应用程序进入后台,Android 操作系统不会让它运行更少比每一分钟。每 60 秒触发一次。
我知道这是android的限制。 我的问题是,有什么办法可以绕过它,或者有什么技巧可以让它每 30 秒运行一次。
public static void startBTService()
{
Utilities.showDebugInfo("Start BT Service called...");
if ( Utilities.getCurrentBTService() != null )
{
Utilities.showDebugInfo("BT Service already running...");
Utilities.sendDataAckUI("BT Service already running...", false);
Utilities.runJavascript("showBTServiceButtons(true);");
return;
}
AlarmManager alarmManager = (AlarmManager)((Activity)Utilities.context).getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(Utilities.context, OnAlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(Utilities.context, 1111, intent, 0);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 30000, pendingIntent);
Utilities.runJavascript("showBTServiceButtons(true);");
Utilities.sendDataAckUI("BT Service started...", false);
}
请帮忙。
谢谢
【问题讨论】:
-
你可以看看
AlarmManagerdocs;特别是关于 API 19 的不准确警报的说明。 -
非常感谢。我非常感谢。我非常感谢您为我指明正确的方向。