-(void)exitApplication {
AppDelegate *app = (AppDelegate*)[UIApplication sharedApplication].delegate;
//此处如果不强转 AppDelegate,会报警告:Initializing 'AppDelegate *__strong' with
// an expression of incompatible type 'id
UIWindow *window = app.window;
// 动画 1
[UIView animateWithDuration:0.6f animations:^{
window.alpha = 0;
window.frame = CGRectMake(0, window.bounds.size.width, 0, 0);
} completion:^(BOOL finished) {
exit(0);
搞定!!!
程序的死亡大致有三种:自然死亡,即无疾而终,通常就是main()中的一个return 0;自杀,当程序发现自己再活下去已经没有任何意义时,通常会选择自杀。当然,这种自杀也是一种请求式的自杀,即请求OS将自己毙掉方法一. UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"退!出!" message:@"
退出
APP
" delegat
那怎么才能判断用户下载
APP
,是否有同意使用呢。并且用户卸载重装后仍然会提示用户同意。
我们可以在用户点击同意时,保存一个关键词在本地。根据这个关键词是否存在本地。而提示用户是否同意。这样用户同意之后在下次点击
APP
时就不会提示了。除非用户卸载重装
APP
我的做法是做一个新的页面。这个页面如上图所示,并且该页面为
APP
的首次加载页面。在该页面上做判断。如果存在就导
一般情况下,
退出
应用程序用苹果自带的home键,当然也可以用exit来实现,exit(0)正常
退出
,exit(1)异常
退出
,用exit
退出
比较有一种突兀的感觉,没有home键实现的那种平滑,动画的感觉
查了一下资料,
退出
程序如果想要用代码实现的话,最好用assert和abort
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *btn = [UIButton buttonWithType:(UIButtonTypeCustom)];
[btn setTitle:@"
退出
" forState:(UIControlStateNormal)];
[btn setTitleColor:[UIColor whiteColor] forState:(UIControlStateN.
主要用到了exit(0)函数,代码如下:加了个动画,类似电视荧幕
关闭
的效果
- (void)exit
App
li
cat
ion
{
UIWindow *window = [
UIApp
li
cat
ion
shared
App
li
cat
ion
].keyWindow;
[UIView animateWithDurat
ion
:0.5f animat
ion
s:^{
window.al...
一般安卓
app
会使用一个
退出
控件 ,但是这个
退出
控件
出现在苹果
app
上是相当傻的一件事情
exit和abort都是终止程序执行并
退出
的处理函数,其中exit是正常
退出
abort是异常
退出
退出
时会出现错误信息,然后再调用exit
退出
就用户体验来说,exi
#pragma mark - exit
app
animat
ion
and funct
ion
/** *
退出
应用动画 */- (void)exit
App
li
cat
ion
{ [UIView beginAnimat
ion
s:@"exit
App
li
cat
ion
" context:nil]; [UIView setAnimat
ion
Durat
ion
:0.5]; [UIView setA...
- (void)exit
App
li
cat
ion
{
App
Delegate
*
app
= [
UIApp
li
cat
ion
shared
App
li
cat
ion
].
delegate
;
UIWindow *window =
app
.window;
[UIView animateWithDurat
ion
:1.0f animat
ion
s:^{
window.alpha = 0;
window.fr...
- (void)exit
App
li
cat
ion
{
UIWindow *window = [
App
Delegate
new].window;
[UIView animateWithDurat
ion
:1.0f animat
ion
s:^{
window.alpha = 0;
} complet
ion
:^(B...
App
Delegate
*
app
=(
App
Delegate
*)[[
UIApp
li
cat
ion
shared
App
li
cat
ion
]
delegate
];
UIWindow *window =
app
.window;
[UIView animateWithDurat
ion
:1.0f animat
ion
s:^{
window.alpha = 0;
不过这个
退出
的效果确实很差,感觉就是程序直接崩溃了,而不是开发者蓄意为之。所以如果真用到这个方法,很多开发者都会做个
退出
动画让它看上去好看一些。
下面是网上比较多的一个动画:
- (void)exist
App
按道理,我们在这个地方去写我们
App
被
关闭
时的操作就行。
但是,我发现
App
关闭
的时候,并不会走到这里来。
然后我看了下系统的注释:当应用程序即将终止时调用。如果适当的保存数据。可看
app
ropriate. See also
app
li
cat
ion
DidEnterBackgrou...
我们的
APP
有一个功能是
退出
应用,之前交给外包做的时候,他们只负责实现功能,但是没有考虑到功能的优化问题,于是直接用崩溃
退出
的方式。
而我接手之后,有一种更好实现的方法:
- (void)exit
App
li
cat
ion
{
//直接退,看起来好像是 crash 所以做个动画
[UIView beginAnimat
ion
s:@"exit
App
li
cat
ion
" context:n
起初设置的方法为这个- (void)
app
li
cat
ion
WillTerminate:(
UIApp
li
cat
ion
*)
app
li
cat
ion
{
// 业务逻辑
}可是通过测试发现,
APP
退出
的时候并不走这个方法
只要添加观察者才会执行这个方法[[NSNotifi
cat
ion
Center defaultCenter] addObserver:self selector:@selector(a