Android程序的隐藏与退出
来源:互联网 发布:黑龙江网页关键词优化 编辑:程序博客网 时间:2024/06/04 01:26
Android的程序无需刻意的去退出,当你一按下手机的back键的时候,系统会默认调用程序栈中最上层Activity的Destroy()方法来销毁当前Activity,当此Activity又被其它Activity启动起来的时候,会重新调用OnCreate()方法进行创建,当栈中所有Activity都弹出结束后,应用也就随之结束了.如果说程序中存在service之类的,则可以在恰当的位置监听处理下也就可以了.
Android程序的隐藏,当你按下手机的Home键的时候,系统会默认调用程序栈中最上层Activity的stop()方法,然后整个应用程序都会被隐藏起来,当你再次点击手机桌面上应用程序图标时,系统会调用最上层Activity的OnResume()方法,此时不会重新打开程序,而是直接进入,会直接显示程序栈中最上层的Activity.
现在的情形是,一个应用程序带有启动画面或者启动动画,进入程序后进行操作,当应用程序退到主Activity的时候,再按back键或者程序中自己写的back按钮,此时程序会结束当前主Activity,当再次点击应用程序图标时,程序会重新打开,会从头显示启动画面,对于用户来说,就知道这个程序刚才已经被结束掉了,而用户的本意是显示桌面,为什么我退出的时候都没有提醒一下!例如带有启动画面的音乐播放软件,如果程序没有做任何处理,当主Activity退出时,播放音乐的服务还没有结束,当程序退出后音乐还在播放,当用户再次点击桌面上的音乐程序图标时,会再次执行启动画面,对用户来说,怎么程序还在运行的时候,又重新打开了一个新的,是不是我这样操作会启动两个音乐播放器啊!针对这样的情况,就需要在主Activity里按back时候时行监听,询问用户是退出还是隐藏,或者执行程序中设置的一个默认操作。如果是退出,我们就需要结束程序进程,Activity、Service等等,如果是隐藏,我们就需要实现手机上按Home时的效果,也就是隐藏后,当用户再次单击桌面上程序图标时,不会执行启动画面,而是直接进入程序栈中最上层退出时正在显示的Activity。
实现按Home键时隐藏程序的效果:
1:Android 2.0之前需要监听按键事件,进行判断是不是按下了back键
2:Android 2.0之后系统提供了一个onBackPressed()方法,这个方法就是专门用来监听back键事件的,所以只需重写onBackPressed()方法即可
@Override
public
void
onBackPressed() {
//实现Home键效果
//super.onBackPressed();这句话一定要注掉,不然又去调用默认的back处理方式了
Intent i=
new
Intent(Intent.ACTION_MAIN);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addCategory(Intent.CATEGORY_HOME);
startActivity(i);
}
退出应用程序的实现:可以自己写个方法,例如:
public
void
exitProgrames(){
Intent startMain =
new
Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
android.os.Process.killProcess(android.os.Process.myPid());
}
需要添加权限:<uses-permission android:name="android.permission.RESTART_PACKAGES" />
- Android程序的隐藏与退出
- Android程序的隐藏与退出
- Android程序的隐藏与退出
- Android程序的隐藏与退出
- Android程序的隐藏与退出
- Android程序的隐藏与退出
- Android应用程序的隐藏与退出
- Android 应用程序的隐藏与退出
- Android程序的退出
- Android程序退出的处理
- Android程序的完美退出
- Android程序的退出功能
- Android 程序退出的办法
- Android程序的退出功能
- android程序的完美退出
- Android 程序退出的办法
- Android 退出程序的三种方
- android程序的完美退出
- 软件工程 敏捷的酒后问答
- 4_16_天天一记
- 隐藏TD 时,出现行变粗的问题。
- 腾讯产品群面总结
- 使用命令模式,告别if-else
- Android程序的隐藏与退出
- windows下不错的ftp下软件(绿色版)
- 第四篇感想
- 用cocos2d-x做一个简单的windows phone 7游戏(一)
- hadoop hbase学习
- HDOJ 1254 推箱子(bfs+dfs)
- 4_17_天天一记
- cvCreateVideoWriter 录制视频的一个可用程序
- u-boot启动方式源码分析