0

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

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

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

4

1 回答 1

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?");          
    }
}
于 2020-05-02T18:02:45.977 回答