zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

如何禁止App在后台运行以及如何保存和恢复App的状态

App后台状态 如何 运行 以及 恢复 保存
2023-09-14 08:56:50 时间

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)


这里写图片描述

而App中的任何View也有类似的生存周期:

这里写图片描述

如果App处在非活动的状态下,那么接着它将进入挂起状态.

某些情况下我们可能不希望这样,我们想要当App进入后台时就将其结束掉.可以通过修改项目的info.plist文件来实现:

这里写图片描述

如上图,将Application does not run in background设置为YES就可以做到这一点.这时当你在运行App时按Home键后,你的App不会进入后台而是直接被结果掉了,下一次运行你的App将会重新运行.

如何保存和恢复App的状态

第二个问题是如果App不从后台恢复的话如何自动保存其之前的状态呢?

举一个UI的例子,在主界面上有一个Text控件:

@property (weak, nonatomic) IBOutlet UITextField *inputText;

我们希望在输入一些字符,当App关掉再次运行的时候之前输入的那些字符会自动显示在Text中.

首先在Main.stroyboard中将ViewController的Restoration ID设置为viewController:

这里写图片描述

然后在AppDelegate.m中添加如下回调方法:

-(BOOL)application:(UIApplication*)application shouldSaveApplicationState:

 (nonnull NSCoder *)coder{

 return YES;

-(BOOL)application:(UIApplication *)application shouldRestoreApplicationState:(NSCoder *)coder{

 return YES;

}

如果你想要保存App级别的数据可以使用以下2个回调方法:

-(void)application:(UIApplication *)application didDecodeRestorableStateWithCoder:(NSCoder *)coder{

 float val = [coder decodeFloatForKey:kAppValue];

 NSLog(@"value is %f",val);

-(void)application:(UIApplication *)application willEncodeRestorableStateWithCoder:(nonnull NSCoder *)coder{

 [coder encodeFloat:99.99 forKey:kAppValue];

}

如果你想要保存某个View界面中的数据,就像一开始说的那样,你可以在ViewController.m里添加如下2个方法:

-(void)decodeRestorableStateWithCoder:(NSCoder *)coder{

 [super decodeRestorableStateWithCoder:coder];

 self.inputText.text = [coder decodeObjectForKey:kSaveKey];

-(void)encodeRestorableStateWithCoder:(NSCoder *)coder{

 [super encodeRestorableStateWithCoder:coder];

 [coder encodeObject:self.inputText.text forKey:kSaveKey];

}

现在你运行App,输入一些字符然后关闭App.当你再次运行该App时你会发现View界面中的文本框会显示之前输入的字符串:

这里写图片描述


Cordova 后台运行 Android APP 在 Vue 项目中的主页(Home.vue)设置返回键,点击返回后 APP 自动后台运行,在 Home.vue created() 中设置回退按钮监听事件。
定制开发商城APP有哪些优势呢? 商城APP可以为企业带来很多好处,比如可以针对性地为用户推送信息,增加其复购率,而且用户足不出户即可满足自己的购买需求,方便随时随地操作。
众筹app商城开发详细,众筹app商城系统开发(案例及方案),众筹商城系统源码功能 The new retail model refers to a model in which individuals and enterprises, relying on the Internet, upgrade and transform the production, circulation and sales process of goods by using advanced technology such as big data and artificial intelligence, and then reshape the business structure and ec