- 浏览: 3503635 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (1491)
- Hibernate (28)
- spring (37)
- struts2 (19)
- jsp (12)
- servlet (2)
- mysql (24)
- tomcat (3)
- weblogic (1)
- ajax (36)
- jquery (47)
- html (43)
- JS (32)
- ibatis (0)
- DWR (3)
- EXTJS (43)
- Linux (15)
- Maven (3)
- python (8)
- 其他 (8)
- JAVASE (6)
- java javase string (0)
- JAVA 语法 (3)
- juddiv3 (15)
- Mule (1)
- jquery easyui (2)
- mule esb (1)
- java (644)
- log4j (4)
- weka (12)
- android (257)
- web services (4)
- PHP (1)
- 算法 (18)
- 数据结构 算法 (7)
- 数据挖掘 (4)
- 期刊 (6)
- 面试 (5)
- C++ (1)
- 论文 (10)
- 工作 (1)
- 数据结构 (6)
- JAVA配置 (1)
- JAVA垃圾回收 (2)
- SVM (13)
- web st (1)
- jvm (7)
- weka libsvm (1)
- weka屈伟 (1)
- job (2)
- 排序 算法 面试 (3)
- spss (2)
- 搜索引擎 (6)
- java 爬虫 (6)
- 分布式 (1)
- data ming (1)
- eclipse (6)
- 正则表达式 (1)
- 分词器 (2)
- 张孝祥 (1)
- solr (3)
- nutch (1)
- 爬虫 (4)
- lucene (3)
- 狗日的腾讯 (1)
- 我的收藏网址 (13)
- 网络 (1)
- java 数据结构 (22)
- ACM (7)
- jboss (0)
- 大纸 (10)
- maven2 (0)
- elipse (0)
- SVN使用 (2)
- office (1)
- .net (14)
- extjs4 (2)
- zhaopin (0)
- C (2)
- spring mvc (5)
- JPA (9)
- iphone (3)
- css (3)
- 前端框架 (2)
- jui (1)
- dwz (1)
- joomla (1)
- im (1)
- web (2)
- 1 (0)
- 移动UI (1)
- java (1)
- jsoup (1)
- 管理模板 (2)
- javajava (1)
- kali (7)
- 单片机 (1)
- 嵌入式 (1)
- mybatis (2)
- layui (7)
- asp (12)
- asp.net (1)
- sql (1)
- c# (4)
- andorid (1)
- 地价 (1)
- yihuo (1)
- oracle (1)
最新评论
-
endual:
https://blog.csdn.net/chenxbxh2 ...
IE6 bug -
ice86rain:
你好,ES跑起来了吗?我的在tomcat启动时卡在这里Hibe ...
ES架构技术介绍 -
TopLongMan:
...
java public ,protect,friendly,private的方法权限(转) -
贝塔ZQ:
java实现操作word中的表格内容,用插件实现的话,可以试试 ...
java 读取 doc poi读取word中的表格(转) -
ysj570440569:
Maven多模块spring + springMVC + JP ...
Spring+SpringMVC+JPA
大家好,好久不见了,我们在开发一个android应用时,有可能有N个Activity,而在每个Activity里的菜单里有个"退出程序"菜单,这里就要完全退出程序了,所以今天给大家分享的是Android应用开发完全退出程序的通用方法,以前我在网上收了几种方法,但都不能通用,比如:任务管理器方法(ActivityManager):
首先要说明该方法运行在Android 1.5 - 2.1 才可以(不过蛮好用的撒!),2.2以后就不行了,同时需要加如下权限:
- <uses-permission android:name="android.permission.RESTART_PACKAGES" />
用法只有如下两行代码:
- ActivityManager am = (ActivityManager)getSystemService (Context.ACTIVITY_SERVICE);
- am.restartPackage("packagename");
上面要是2.2以后能通用就非常完美了,可是结果你懂得。。。
所以为了通用想到了另外一种方法,就是当我们点击“退出程序”菜单时,可以从当前Activity跳转到主Activity(就是我们打开程序最先启动的那个Activity),通过Intent告诉主Activity我要退出程序,然后主Activity调用finish()方法即可。由于这一过程很短暂,以致于我们没观察到Activity有任何切换就退出程序了!
同样为了让大家更容易理解,我做了一个Demo.为了省事,程序运行时我直接就从MainActivity跳转到BActivity,在BActivity有个“退出程序”菜单,点击会退出程序。具体过程如下:
首先第一步:新建一个Android工程,命名为ExitDemo(目录结构图如下)
第二步:定义一个工具类Sysutil用来退出程序,这样定义好处可以在多个Activity的时候复用,代码如下:
- package com.tutor.exit;
- import android.app.ActivityManager;
- import android.content.Context;
- import android.content.Intent;
- public class SysUtil {
- public static final int EXIT_APPLICATION = 0x0001;
- private Context mContext;
- public SysUtil(Context context){
- this.mContext = context;
- }
- //完全退出应用
- public void exit(){
- // 1.5 - 2.1之前下面两行是ok的,2.2之后就不行了,所以不通用
- // ActivityManager am = (ActivityManager)mContext.getSystemService(Context.ACTIVITY_SERVICE);
- // am.restartPackage("com.tutor.exit");
- Intent mIntent = new Intent();
- mIntent.setClass(mContext, MainActivity.class);
- //这里设置flag还是比较 重要的
- mIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- //发出退出程序指示
- mIntent.putExtra("flag", EXIT_APPLICATION);
- mContext.startActivity(mIntent);
- }
- }
第三步:修改MainActivity.java,代码如下:
- package com.tutor.exit;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- public class MainActivity extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- }
- //这里用来接受退出程序的指令
- @Override
- protected void onStart() {
- int flag = getIntent().getIntExtra("flag", 0);
- if(flag == SysUtil.EXIT_APPLICATION){
- finish();
- }
- super.onResume();
- }
- //程序启动后就进入了BActivity
- @Override
- protected void onResume() {
- Intent mIntent = new Intent();
- mIntent.setClass(this, BActivity.class);
- startActivity(mIntent);
- super.onStart();
- }
- //当activity是单例的时候,再次启动该activity就不会再调用 oncreate->onstart这些方法了
- @Override
- protected void onNewIntent(Intent intent) {
- int flag = getIntent().getIntExtra("flag", 0);
- if(flag == SysUtil.EXIT_APPLICATION){
- finish();
- }
- super.onNewIntent(intent);
- }
- }
第四步:新建一个Activity命名为BAcivity.java,记得要在配置文件里申明哦~代码如下:
- package com.tutor.exit;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.widget.TextView;
- public class BActivity extends Activity {
- public static final int MENU_EXITAPPLICATION = Menu.FIRST;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- TextView mTextView = new TextView(this);
- mTextView.setText("Welcome to Frankie's blog.");
- setContentView(mTextView);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- menu.add(0, MENU_EXITAPPLICATION, 0,"退出程序");
- return super.onCreateOptionsMenu(menu);
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- if(item.getItemId() == MENU_EXITAPPLICATION){
- //其他Activity退出程序这样调用就ok了
- SysUtil mSysUtil= new SysUtil(BActivity.this);
- mSysUtil.exit();
- }
- return super.onOptionsItemSelected(item);
- }
- }
发表评论
-
android离线
2019-11-04 21:25 258https://www.jianshu.com/p/fdfc4 ... -
android 异步更新
2015-07-11 22:42 1463http://www.apkbus.com/forum.php ... -
仿微米
2015-06-26 10:22 0http://www.javaapk.com/source/4 ... -
仿微信
2015-06-26 10:21 1870http://www.javaapk.com/source/1 ... -
网易客户端
2015-06-26 10:20 1561http://www.javaapk.com/source/4 ... -
仿朋友圈
2015-06-26 10:18 1663http://www.javaapk.com/source/8 ... -
仿朋友圈
2015-06-26 10:13 1775http://www.eoeandroid.com/threa ... -
全国ABC查询
2015-06-26 10:07 1270IM 功能 环信云 信息统计 Umeng 分享Umeng 更新 ... -
android 判断网络
2015-06-25 16:00 1218http://www.cnblogs.com/renqingp ... -
android 多彩表格
2015-05-31 16:06 1431http://blog.csdn.net/conowen/ar ... -
android socket
2015-05-31 16:01 1591http://blog.csdn.net/conowen/ar ... -
微信播放语音3
2015-02-25 12:00 1390http://download.csdn.net/detail ... -
微信语音播放2
2015-02-25 11:57 1295http://download.csdn.net/detail ... -
微信语音播放
2015-02-25 11:56 1642http://www.apkbus.com/android-1 ... -
超强的资料整合
2015-01-05 11:04 1195http://zz563143188.iteye.com/bl ... -
最强开发资源平台大合集
2015-01-04 14:50 1849程序员代码应用开发平 ... -
Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)
2014-09-04 15:45 1332http://blog.csdn.net/vipzjyno1/ ... -
android应用推广
2014-09-03 23:25 1278应用推广不必愁,有米 ... -
android 图片异步加载
2014-09-03 16:47 1095http://www.csdn.net/article/201 ... -
android hander的使用
2014-09-02 23:46 1319http://www.cnblogs.com/xiaoran1 ...
相关推荐
Android应用开发多个activity完全退出程序方法,亲测可用
Android应用源码完全退出程序的方法.zip
在技术理论的讲解方面,《Android应用开发完全自学手册:核心技术、传感器、2D/3D、多媒体与典型案例》注重对实际动手能力和完全自学的指导,书中重点讲解了Android开发的核心知识及流行的应用技术,如游戏开发、2D...
Android怎样才能完全退出程序? 本Android程序解决了完全退出,引用context未释放引起的oom等问题。
Android应用源码开发Demo,主要用于毕业设计学习。
android 如何完全退出程序
安卓Android源码——完全退出程序的方法.zip
安卓Android源码——完全退出程序的方法.rar
《Android应用开发范例精解》通过通俗易懂的开发实例及项目案例,详细介绍了Android应用开发的知识体系及实用开发技术。 《Android应用开发范例精解》共14章,分为3篇。第1篇为基础篇,涵盖Android背景及开发环境和...
在Android中,如果想退出Android程序,一般都是调用finish()、System.exit(0)android.os.Process.killProcess(android.os.Process.myPid())等方法来实现退出程序功能,可是在实际开发中,并不能达到完全退出应用程序...
《Android应用开发》还对Android平台下开发环境的搭建、程序的签名和发布以及程序调试和性能优化所用到的工具和方法等进行了讲解。 《Android应用开发》适合有一定程序设计基础并致力于从事Android平台应用软件开发...
Android应用开发源代码大全!第1章 Android开发基础第2章 Android应用程序的组成与结构第3章 Android控件入门第4章 Android布局管理综述
Android应用开发完全自学手册_光盘部分资料
《Android应用开发》还对Android平台下开发环境的搭建、程序的签名和发布以及程序调试和性能优化所用到的工具和方法等进行了讲解。, 《Android应用开发》适合有一定程序设计基础并致力于从事Android平台应用软件开发...
《Android应用开发详解》源码,完整版,值得看一看。 《Android核心技术和开发详解》各章案例的全部源代码,第一章将要介绍的是Android开发起步的相关知识,首先对Android平台进行简单的介绍,其中包括Android的背景...
作为一本Android应用开发书籍,本书既适合Android初学者,也适合具备了一定Android开发经验丹需要开发案例的高级读者。 本书分为三个部分,共18章,由浅入深地详细介绍了Android的每个开发细节。 本书基础翔实,...
Android应用程序开发 代码与PPT 哈工程 王向辉
Android 小项目开发示例大全--20个通用具体应用程序实例源码.rar Android 文件下载功能Java多线程下载功能的例子实例源码.rar Android程序源码--贪吃蛇.rar Mp3播放器源码Android实战项目源码.rar 安卓Android中国...