android 安全退出应用程序的几种方法
android 安全退出应用程序的几种方法
当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用:
第一种方法:首先获取当前进程的id,然后杀死该进程。
android.os.Process.killProcess(android.os.Process.myPid())
通过这种方式不能将应用程序完全杀死,并且他不会把当前应用应用的Activity的task任务栈清空
第二种方法:终止当前正在运行的Java虚拟机,导致程序终止
System.exit(0);
不会把自己的应用程序杀死
第三种方法:强制关闭与该包有关联的一切执行
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
manager.restartPackage(getPackageName());
<uses-permission android:name="android.permission.RESTART_PACKAGES" />
只能杀死别人,不能杀死自己
企业中做法:
创建类app 继承Application
AndroidMainfest -->name -->app //声明该类为整个应用程序全局的实例
创建整个应用程序全局的实例
App.class:
ArrayList<Activity> activities;
其他的Activity中:
public void onCreate(Bundle savedInstanceState) {
App app = (App) getApplication();//获取应用程序全局的实例引用
app.activities.add(this); //把当前Activity放入集合中
}
public void onDestory(){
App app = (App) getApplication();//获取应用程序全局的实例引用
app.activities.remove(this); //把当前Activity从集合中移除
}
安全退出:
在菜单退出按钮的事件中定义如下代码:
App app = (App) getApplication();
List<Activity> activities = app.activities;
for(Activity act:activities){
act.finish();//显式结束
}
android 安全退出应用程序的几种方法的更多相关文章
- 我的Android进阶之旅------>Android安全退出应用程序的几种方式
当应用不再使用时,通常需要关闭应用,可以使用以下几种方法关闭android应用: 第一种方法:首先获取当前进程的id,然后杀死该进程. 建议使用这种方式 android.os.Process.kil ...
- c# 获取应用程序exe文件路径及退出应用程序的几种方法
this.GetType().Assembly.Location; Application.ExecutablePath; Application.StartupPath:和上面的相比缺少可执行文件 ...
- C# 退出应用程序的几种方法
Application.Exit();//好像只在主线程可以起作用,而且当有线程,或是阻塞方法的情况下,很容易失灵 this.Close();//只是关闭当前窗体. Application.ExitT ...
- android中退出当前应用程序的四种方法
android中退出当前应用程序的四种方法 [IT168 技术]Android程序有很多Activity,比如说主窗口A,调用了子窗口B,如果在B中直接finish(), 接下里显示的是A.在B中如何 ...
- android完全退出应用程序
android 完全退出应用程序android android 退出应用程序, 单例模式管理Activity引自:http://www.yoyong.com/archives/199android 退 ...
- c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0);
本文实例总结了C#中WinForm程序退出方法技巧.分享给大家供大家参考.具体分析如下: 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit ...
- Android获取APK包名的几种方法
Android获取APK包名的几种方法:1.adb shell pm list package -f | findstr 关键字 #只能获取到包名,主Activity名无法获取到 2.使用aapt-- ...
- Tomcat部署发布JSP应用程序的三种方法 (转)
Tomcat部署发布JSP应用程序的三种方法 1.直接放到Webapps目录下 Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应 ...
- Android Studio导入Eclipse项目的两种方法
Android Studio导入Eclipse项目有两种方法,一种是直接把Eclipse项目导入Android Studio,另一种是在Eclipse项目里面进行转换,然后再导入Android Stu ...
随机推荐
- TatukGIS-TGIS_LayerVector-LocateEx
方法原型: function LocateEx(const _ptg: TGIS_Point; const _prec: Double; const _uid: Integer; var _dist: ...
- Centos yum install
http://wiki.centos.org/TipsAndTricks/BrokenVserver centos mirror: http://mirror.centos.org/centos/6 ...
- 《C++程序设计》上半部读书笔记
目录 前言 第一章 C++的初步知识 1 C语言的优点 2 C++产生的背景 3 C++对C的增强 4 如何体会C++的优点 ...
- Linq/EF/lambda Group by/Order by 多个字段详细用法
1)单个字段Group by: //a.Key类型与a.Province字段类型一样 .GroupBy(a => a.Province).Select(a => a.Key).ToLis ...
- TWIG整合
//数字格式化 {{ (p.oldprice * p.count)|number_format(2,'.',',') }}
- WordPress BulletProof Security插件多个HTML注入漏洞
漏洞名称: WordPress BulletProof Security插件多个HTML注入漏洞 CNNVD编号: CNNVD-201308-023 发布时间: 2013-08-06 更新时间: 20 ...
- 数据结构(堆):POJ 1442 Black Box
Black Box Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 10658 Accepted: 4390 Descri ...
- 服务端调用js:javax.script
谈起js在服务端的应用,大部分人的第一反应都是node.js.node.js作为一套服务器端的 JavaScript 运行环境,有自己的独到之处,但不是所有的地方都需要使用它. 例如在已有的服务端代码 ...
- Android按钮式进度条
package com.example.progress.demo; import android.annotation.SuppressLint; import android.content.Co ...
- [后端Day1]Python2.7之基础
注:以下内容全部为 廖雪峰的官方网站 中学习内容的摘要和总结 输入和输出: name = raw_input('please enter your name: ') print '100 + 200 ...