今天在做android2.1上的程序向android2.2上移值的时候,发现在2.1上的退出应用程序的代码在2.2上不起作用,具体如下:
在2.1上用了以下方法来进行应用的退出:
final ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
am.restartPackage(getPackageName());
<!-- 退出应用程序配置 -->
<uses-permission android:name="android.permission.RESTART_PACKAGES"/>
用以上方法在2.1上可以退出整个应用,无论应用中原来的activity是否已经finish掉。此外还有以下两种方法
2.android.os.Process.killProcess(android.os.Process.myPid());
3.System.exit(0);
也是可以退出整个应用的。但是当移值到2.2系统上后,以上三个方法均不能起到退出整个应用的效果,只能是关闭当前的activity,此时若Task栈中存在没有关闭的activity,就会弹出栈中的activity,进行出现不能退出整个应用的现像。
后来在网上也查了是否有相关的方法。给出的方法有下面几种,但结果都不理想:
1.
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
activity.startActivity(startMain);
System.exit(0);//退出程序
这个程序做了个实验,发现可以退出主界面,但并不能完全退出当前的应用,按上述方法退出后,当再次进行应用时,会显示出原来没有finish掉的栈中的那个activity.因此,与其说这是个退出方法,不如说只是强制程序回到了主界面,而原应用并没有彻底退出。
2.
ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
am.killBackgroundProcessesgetPackageName());
<!--权限-->
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES">
在2.2中,提供了上述一个方法,需要加入权限,但在实验时,也不能完全退出应用。
3.
在eoe上有人用Receiver来实现应用的退出。
http://www.eoeandroid.com/thread-62284-1-1.html
但是感觉跟finish()是一样的。具体没做实验
4.还有一个方法是利用反射得到api中没有暴露的方法,进行结束应用,具体网址忘记了。但实验时也不成功。
最后实在找不出一个能一下子退出整个应用的方法,只能在activity不用时finish()掉。如果有人找到合适的方法,请通知一下!
分享到:
相关推荐
例子是Android1.6的,在2.2和4.0系统都试过没有问题,如有问题请加群:213167832,找Harlan.谢谢大家。
UMcall - 免费通话软件: UMcall是基于互联网络免费通话和收发消息的软件, 适用于2G/3G/WiFi 网络,双方安装即可通话。... 1、修改通话过程中按home键退出不能回到通话界面的问题 2、优化通话质量。
1 2.1 系统功能描述 1 2.2 系统模块设计 1 3 主要代码清单 2 4 程序运行与测试 2 5 实训总结 3 android视频播放器系统的设计与实现 1 实训目的 本学期我们学习了JAVA课程和Android应用程序开发课程。而Android应用...
XX学院 智能移动终端应用开发 设计报告 (20XX/20XX学年第XX学期) 题 目 : 基于Android系统的贪吃蛇游戏 专 业 : 小组成员 : 设计成绩 : 年月日 摘 要 Android是基于Linux开放性内核的操作系统,是Google公司在...
作为基于Linux的开源手机平台,Android包括一部手机工作所需的全部软件——操作系统、用户界面和应用程序,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌公司与开放手机联盟合作开发了Android,这个联盟...
注意,本书分析的源码是Android2.2。 第2章通过Android源码中的一处实例深入地介绍了JNI技术。 第3章围绕init进程,介绍了如何解析init.rc以启动Zygote和属性服务(property service)的工作原理。 第4章...
以及本地数据存储等基础知识,而且通过“Hello, Android”项目深入探讨了外部通信、基于位置的服务、内置SQLite数据库、3D图形、多点触控、小部件、兼容性测试,以及如何向AndroidMarket发布应用程序等内容。...
答:ANR(Application Not Responding):应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应的对话框 避免ANR:Android应用程序通常运行在一个单独的线程里面,称谓主线程,...
鉴于市场上用户的手机型号、种类、屏幕分辨率等参差不齐,传统方式根据主流系统分别开发相应的系统耗时又耗力,为了高效开发并节约开发项目成本,本文采用Android+HTML5相结合的方式进行移动端Web系统的设计研发工作...
1 在网络条件不好的情况下在全屏和竖屏两个Activity之间切换可能会出错退出,原因是官方播放库中的线程没有做线程分离,在log中可以看到错误信息,这个问题在应用层没法改。如果只是在一个页面播放而不跳新页面则没...
因插件注册机制的修改,2.1版本不能自动升级,如需重新生成手机应用,只能升级至2.2版本(请放心:手机应用旧版本的用户使用不受影响)。 2)升级步骤: 在升级至2.2时必须按以下步骤操作:卸载插件>删除服务器插件包...
1、ANDROID文件系统与应用程序架构 7 1.1、ANDROID 文件系统 7 1.2、ANDROID应用程序架构 9 2、ANDROID应用程序结构 11 2.1、ACTIVITY 12 2.1.1、概述 12 2.1.2、Activity的生命周期 15 2.1.3、Activity 的创建 16 ...
1、ANDROID文件系统与应用程序架构 7 1.1、ANDROID 文件系统 7 1.2、ANDROID应用程序架构 9 2、ANDROID应用程序结构 11 2.1、ACTIVITY 12 2.1.1、概述 12 2.1.2、Activity的生命周期 15 2.1.3、Activity 的创建 16 ...
课程设计报告书 专 业:计算机科学与技术 课程设计名称:《Java高级应用》 题 目:俄罗斯方块 班 级: 学 号: 设 计 者: 同 组 人 员: 指 导 老 师: 完 成 时 间:2016年06月08 Android俄罗斯方块课程设计报告...
APP启动退出统计,不同渠道统计。客户端SDK功能概述在使用统计服务前,开发者先要拿到本身APPID。其中AppId是客户端的身份标识,在客户端SDK初始化时使用。然后下载最新Library的 SDK压缩包,其中包括了Android SDK...
本播放器在播放完毕或者返回退出时将自动KILL自身进程及服务,不会驻留后台,良心应用请放心使用。 本播放器支持手势控制音量、亮度、快进快退。 播放器CPU、格式、编码支持: 支持的CPU: - armeabi,armeabi-v7a,...
Android系统、ios系统手机/pad均可作为客户端 便捷获取客户端软件 二维码扫描快速下载客户端软件 Appstore便捷获取客户端软件 无线远程操作 客户端触摸板远程模拟鼠标操作PC 远程打开PC端PPT进行播放、上下...