如何从后台进程重新打开Connect IQ应用程序?

时间:2019-10-19 21:29:30

标签: garmin connectiq

我想为Garmin Fenix写一个心情跟踪器,所以我希望该应用程序在一定时间间隔后弹出,振动并询问我当前的心情。当然,我不想一直将心情跟踪器放在前台,因此我正在寻找一种从后台任务重新打开应用程序的方法。

我发现了两个似乎可以实现这一目标的模块,TimerBackgroundBackground可以在一段时间后将数据传递回应用程序,但不会振动,并且只有在手动重新打开应用程序后,数据传输才会生效。一旦应用关闭,Timer似乎根本没有太大作用-至少在模拟器中。

在特定时间段后重新打开我的应用的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

据我了解,您可以执行以下操作:

您要使用[requestApplicationWake][1]

onStop()方法中,您可以注册一个temporalEvent。

Background.registerForTemporalEvent( 10 * 60 ); // 10 mins is the min

然后创建在触发事件时将调用的此类。

using Toybox.Background;
using Toybox.System;
using Toybox.Application.Storage;

(:background)
class BackgroundTimerServiceDelegate extends System.ServiceDelegate {

    function initialize() {
        ServiceDelegate.initialize();
    }

    function onTemporalEvent() {
        // do whatever processing you need and then serve the popup
        Background.requestApplicationWake("do you want to open the app?");          
    }
}