gpt4 book ai didi

ios - 当电话进入休眠状态与最小化然后在 objective-c 中进入休眠状态时调用哪些方法

转载 作者:行者123 更新时间:2023-11-29 13:03:46 26 4
gpt4 key购买 nike

我正在编写一个应用程序来检测您何时进入特定位置。当您到达某个位置时,它会检测到变化并发送本地通知。当收到通知并打开时,应该会切换屏幕。该应用程序似乎对我来说工作完美,但我的测试员告诉我屏幕永远不会为他切换。为了重现这个问题,我们去了他家,他演示了。我注意到的是,在进入热点之前,他先按下主页按钮,然后让手机进入休眠状态。在执行多项测试后,我们确定如果手机在应用程序仍然打开的情况下简单地进入休眠状态,屏幕将会切换。如果我们先最小化应用程序然后让手机进入休眠状态,则屏幕永远不会切换。

在打开应用程序并收到通知之前,屏幕不应切换。我很好奇有什么区别,是否有委托(delegate)方法来处理这样的事件,或者为什么会发生这种情况?有什么想法吗?

编辑

-- 定位服务相关代码--

这是我用于定位服务的单例类

@implementation LocationManager

static LocationManager *locationManager;

+ (LocationManager *)locationManager {
if (locationManager == NULL) {
locationManager = [[LocationManager alloc] init];
}

return locationManager;
}

@end

这是 welcomeviewcontroller 中实际实现委托(delegate)方法的代码(它很长所以我只发布重要部分)

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
if ([self getAppState] == TRACKING_HOTSPOT) {
NSLog(@"\nLAT: %f\nLNG: %f", [self deviceLatitude], [self deviceLongitude]);
for (int j = 0; j < [MinX count]; j++) {
if ((([self deviceLatitude] > [MinX[j] floatValue] && [self deviceLatitude] < [MaxX[j] floatValue]) && ([self deviceLongitude] > [MinY[j] floatValue] && [self deviceLongitude] < [MaxY[j] floatValue]))) {
if ([self testCells: [CellId[j] intValue]]) {
[self.delegate setNum: [CellId[j] intValue]];
...
}

我还在 info.plist 文件中设置了适当的标志。它在我的最后一个版本上工作,但从那以后我真的没有太大改变。我不知道为什么它不起作用。而且,它只在某些领域有效。它检测到它在热点中,发送通知提醒我它去了那里,但是当它切换 View Controller 时,只有当你按下主页按钮然后让手机在收到通知之前进入休眠状态时它才会工作。如果应用程序保持打开状态或者您只需按下主页按钮,它就会正确切换。我在整个过程中观察了 Xcode 中的内存和 CPU 管理,当我最小化并进入休眠状态时,内存从地板上掉下来,但当我只是进入休眠状态时却没有。我相信即使手机处于 sleep 状态,手机也可能在最小化之前不会“在后台”考虑它。也许我错了。

在 appdelegate 中,我将其设置为检测它是否使用标志进入前台。但无论如何,如果应用程序是从通知中打开的,它应该将控制权发送给 didreceivelocalnotification 方法,对吗?

最佳答案

我假设您在 中执行了切换 – application:didReceiveLocalNotification: 您是否尝试过从 - (void)applicationDidEnterBackground:(UIApplication *)application 显示本地通知? Here是本地通知的实现示例

关于ios - 当电话进入休眠状态与最小化然后在 objective-c 中进入休眠状态时调用哪些方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19142345/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com