问题标签 [ios-lifecycle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
966 浏览

ios - 当用户从任务切换器关闭应用程序时显示(本地)通知

我想在我的应用程序终止时向用户显示(本地)通知,无论是由 iOS 本身还是由用户通过任务切换器。

当 iOS 由于内存压力而终止应用程序时,applicationWillTerminate会在 my 上调用该函数AppDelegate,因此我可以在这种情况下安排本地通知。

但是,当用户通过在任务切换器中将应用程序滑动到顶部来终止应用程序时,applicationWillTerminate不会调用该函数(如 Apple 文档和 SO 上的各种答案中所述)。然而,在这种情况下,有些应用程序仍然成功地向用户显示(本地)通知(尤其是健身跟踪应用程序,例如 Human),要求用户重新启动应用程序以便后台跟踪可以继续。

我可以想到一些(主要是笨拙的,或者至少是耗电的)方法来完成这项工作,但是有没有一种很好的方法可以向用户显示这样的通知?特别是在应用程序被用户杀死后几乎立即执行此操作,这排除了许多可能的解决方法,即在后台每隔 n 秒安排和取消本地通知......

0 投票
3 回答
744 浏览

ios - 从在线数据库填充 UICollectionView

我正在创建一个简单的聊天应用程序,它有一个加载屏幕,如果用户未登录,则该屏幕会转到登录屏幕,如果用户登录,则直接转到他的聊天。聊天显示在UICollectionView. 当我第一次测试时,我用我在类本身中声明的虚拟数据填充它,并且一切正常。现在,我从加载屏幕中的在线数据库中获取用户的聊天记录,并将它们存储在一个名为的数组中,该数组被user_chats全局声明。

在此处输入图像描述

我使用以下代码填充UICollectionView

数据获取:

问题是集合视图现在总是空的。我做了一些调试并在第一个函数中放置了一个断点,我看到当加载屏幕仍然显示给用户并且聊天屏幕还没有加载时调用了这个方法。我怀疑这是在加载屏幕中从互联网获取数据之前调用的,因此user_chats数组的大小为 0。我习惯于使用 Android,并且ListViewListView父视图之前永远不会填充显示在屏幕上,因此我感到困惑。从在线数据库中获取数据的方法工作正常,因为我已经对其进行了广泛的调试,所以问题不存在。

0 投票
1 回答
415 浏览

ios - 获取存储在 firebase 中的数据值

我正在尝试访问存储在 firebase 仪表板中的值,以便在类中的不同函数和方法中使用它们。

我在这个问题中使用了这种方法

我试图打印他们的值,整个应用程序崩溃了,它给了我他们的零!

他们实际上不是零!我在 viewDidLoad 中使用了类似的方法,我可以将值检索到标签!

为什么我在这里撞车!

0 投票
1 回答
1149 浏览

android - Android中是否存在暂停状态?

在 iOS 中,如果用户按下主页按钮,应用程序将移动到suspended state. 双击主页按钮,出现暂停的应用程序,选择一个应用程序会将其恢复为active state

  • 安卓怎么样?应用程序可以变成suspended state按下中心按钮吗?或应用程序移动到not running状态?
  • 如果suspended state存在,如何带回running state,我可以在其中选择一个应用程序?
  • 在一个活动中,该oncreate方法只会被调用一次,当应用程序首次启动时?哪个方法被调用,当应用出现时总是调用,回到running state?
0 投票
1 回答
2540 浏览

ios - 用户退出iOS应用程序(Swift)时如何执行方法?

我一直在构建 iOS 音乐应用程序,并且正在使用MPMusicPlayerController.systemMusicPlayer()从设备的 iTunes 库中播放音乐。

我尝试了applicationWillTerminate来停止音乐播放器,但它没有用,在做了一些研究后我发现 iOS 4 之后applicationWillTerminate方法将*几乎永远不会被调用,我们必须在applicationDidEnterBackground方法中完成所有工作。

但我的意思是,我希望我的音乐播放器在进入后台时继续播放音乐,并且只有在用户强制退出应用程序时才停止音乐,我该如何实现这种行为?

0 投票
1 回答
583 浏览

ios - iOS App 更新期间的生命周期

我想知道当应用更新时应用处于什么状态。

例如:假设我们有一个正在运行的应用程序(称为 Le Music)以后台模式播放音乐。

现在我们去商店看看有可用的更新,然后我们点击更新。从旧版本应用程序过渡到新版本应用程序期间,当前版本的乐音乐的生命周期是什么?

0 投票
1 回答
1332 浏览

ios - 在视图控制器生命周期中更新约束的位置

我想更新约束常量和乘数,我想在右视图控制器生命周期事件中更新这些约束

  • 加载视图

  • viewDidLoad

  • 视图将出现

  • viewWillLayoutSubviews

  • viewDidLayoutSubviews

  • viewDidAppear

有一些帖子说最好在 viewcontroller 的 UpdateViewConstraints方法中更新约束

与此相关的混乱太多了。

有人请解释

0 投票
0 回答
29 浏览

ios - 如何在不使用“位置更新”功能的情况下检测用户何时从多任务 UI 终止 iOS 应用程序

如何在不使用“位置更新”功能的情况下检测用户何时从多任务 UI 终止 iOS 应用程序。我从 Apple 的文档中知道,在这种情况下不会调用 AppDelegate 中的“applicationWillTerminate”函数。 iOS 应用程序编程指南

暂停的应用程序在终止时不会收到通知;系统杀死进程并回收相应的内存。如果应用程序当前正在后台运行且未挂起,则系统会在终止之前调用其应用程序委托的 applicationWillTerminate:。设备重启时系统不会调用该方法。

除了系统终止您的应用程序外,用户还可以使用多任务 UI 显式终止您的应用程序。用户发起的终止与终止暂停的应用程序具有相同的效果。应用程序的进程被终止,并且没有通知发送到应用程序。

但是,当我们设置“位置更新”功能时,allowBackgroundLocationUpdates = truestartUpdatingLocation()就会调用函数“applicationWillTerminate”。我的问题是,是否有任何解决方法或任何其他功能可以在不使用“位置更新”的情况下调用“applicationWillTerminate”。

0 投票
3 回答
4356 浏览

ios - 观察来自 ViewController 的通知

NotificationCenter当数据库中的数据更新时,我会向客户端发布带有新数据的通知。AViewController将观察此通知,以便可以相应地更新 UI。
如果视图控制器观察到新通知并尝试更新 UI,而它不是屏幕上当前的视图控制器,应用程序会崩溃吗?
还是观察通知的功能会等到视图控制器出现才能执行?

0 投票
2 回答
725 浏览

ios - 我应该在我的 iOS (Swift) 应用程序生命周期的哪个位置从 firebase 获取我的所有数据?

在从 firebase 获取所有数据之前,用户可能无法与我的应用交互。所以到目前为止我的新手计划是:

  1. 启动微调器
  2. 从 firebase 获取数据(异步)
  3. 当第 2 步异步作业完成后,隐藏微调器

我作为新手的第一个想法通常不是要走的路,必须有一种更聪明的方法,其中涉及框架(可能是应用程序生命周期中的某个地方)或最佳实践模式。
我在www上找不到任何有用的东西。链接也可能会有所帮助。