使用如下组合可达到按home键退到后台的动画效果。
// 进入后台
UIControl().sendAction(#selector(URLSessionTask.suspend), to: UIApplication.shared, for: nil)
// 结束应用
DispatchQueue.main.asyncAfter(deadline: .now() + 1.25) {
UIApplication.shared.perform(Selector(("terminateWithSuccess")))
}
需要注意的是,单独第一行就可以达到 有动画回到桌面程序进入后台的目的,单独第二行 没有动画回到桌面并终止应用,两行同时使用可以 动画回到桌面并终止应用。 根据需要选择其中一个或两个一起使用。
oc:
if([[UIApplication sharedApplication] respondsToSelector:@selector(terminateWithSuccess)]){
[[UIApplication sharedApplication] performSelector:@selector(suspend)];
};
<article class="_2rhmJa">
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.25 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
// 杀掉应用,这里会有警告⚠️忽略即可,强迫症的话就使用exit(0)吧
if([[UIApplication sharedApplication] respondsToSelector:@selector(terminateWithSuccess)]){
[[UIApplication sharedApplication] performSelector:@selector(terminateWithSuccess)];
};
});
其他退出方式 : 这样的效果有点生硬,和闪退是一样的效果,交互不好
abort(); // 会抛出异常 立即终止当前进程,产生异常程序终止
exit(0); // 不会抛出异常 正常终止进程,并进行清理
网友评论