【问题标题】:Is there any workaround to make Android service run every 30 seconds (not every 1 minute)是否有任何解决方法可以使 Android 服务每 30 秒(不是每 1 分钟)运行一次
【发布时间】: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);
}

请帮忙。

谢谢

【问题讨论】:

  • 你可以看看AlarmManager docs;特别是关于 API 19 的不准确警报的说明。
  • 非常感谢。我非常感谢。我非常感谢您为我指明正确的方向。

标签: android android-activity


【解决方案1】:

我在使用 AlarmManager 时遇到了类似的问题。我使用的解决方案是在 IntentService 中排队的 Timer。

            int delay = 1000 * 15; // delay for 15 sec.
            int period = 1000 * transmitInterval; // interval to send data
            timer = new Timer();
            timer.scheduleAtFixedRate(new TimerTask() {
                public void run() {
                    transmitData();
                }
            }, delay, period);

【讨论】:

    猜你喜欢
    • 2016-02-05
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多