我目前正在使用swift开发应用程序,我想知道是否有办法在用户手机上每天运行一段代码?这方面的一个例子是我每隔5天运行一段代码。
答案 0 :(得分:1)
无法在请求时间间隔内永久执行后台任务。完成后台任务的时间限制为10或15分钟。
您想在后台执行某些特殊操作吗?对于需要执行更多执行时间的任务,您必须请求特定权限才能在后台运行它们而不会被暂停。
您可以阅读有关后台执行的更多信息here。
如果您想在手机处于活动状态时运行某些内容,可以通过查看AppDelegate中的applicationDidBecomeActive
功能来执行此操作。
答案 1 :(得分:0)
在iOS中,您无法控制何时打开应用,并且您的应用无法随意加载自身以运行代码(除非涉及推送通知)。
话虽如此,您可以使用AppDelegate
中的一种方法来检查自上次运行代码之日起是否已经过了5天或更多天(可以存储在UserDefaults
中),并运行,如果它有。
答案 2 :(得分:-1)
我确信有更有效的方法可以做到这一点,因为我只是一个初学者,但我不妨尝试提供帮助。你能创建一个每x天发射一次的NSTimer吗? NSTimeInterval
将是60(秒)* 60(分钟)* 24(小时)*(您想要的天数)。然后Selector
将是"(无论你的名字是什么)"。最后,无论你想要在x天内发生什么,都会放在Selector
中NSTimer
的函数中,而override func viewDidLoad() {}
中的@model Test.Web.ViewModels.ParentViewModel
<script>
function filterChildNamesList() {
debugger;
return {
cFilter: $("#Child0").data("kendoComboBox").input.val()
};
}
</script>
@{
Model.ChildList = new List<Test.Web.Model.Child>();
for (int count = 0; count < Model.NumChilds; count++)
{
Model.ChildList.Add(new Test.Web.Model.Child());
}
}
<table>
@for (int count = 0; count < Model.ChildList.Count; count++)
{
<tr>
<td>
<label>Child @count</label>
@(Html.Kendo().ComboBoxFor(m => m.ChildList[count].ChildName)
.HtmlAttributes(new { style = "width:300px", id = "Child" + count })
.Placeholder("Enter 4 characters...")
.DataTextField("description")
.DataValueField("id")
.Filter(FilterType.Contains)
.MinLength(2)
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetChildNames", "Parent").
Data("filterChildNamesList");
}).ServerFiltering(true);
}))
<td>
</tr>
}
</table>
很可能会出现在{{1}}中我希望这可以帮到你和未来的观众。