- 浏览: 134079 次
- 性别:
- 来自: 北京
最新评论
-
qiuhuahui1:
真的有用,帮我节省了大把的时间。
android的ant编译打包 -
fxiaozj:
楼主,有没有demo?
Android ViewGroup实现页面滑动效果并实现不同的动画效果 -
sgjsdf5944:
你好,请问下楼主如果我想在安装完成页面上控制打开不可用该怎么实 ...
Android 监控程序安装和删除的实现 -
renfujiang:
养成好习惯,看过别人的文章 就得评论 增加点人气 好文章 我是 ...
android的ant编译打包 -
leishengwei:
你好,第一种方法在4.0时,输入法是弹不出去了,但是光标不能正 ...
Android如何关闭EditText中的软键盘
所以为了通用想到了另外一种方法,就是当我们点击“退出程序”菜单时,可以从当前Activity跳转到主Activity(就是我们打开程序最先启动的那个Activity),通过Intent告诉主Activity我要退出程序,然后主Activity调用finish()方法即可。由于这一过程很短暂,以致于我们没观察到Activity有任何切换就退出程序了!
同样为了让大家更容易理解,我做了一个Demo.为了省事,程序运行时我直接就从MainActivity跳转到BActivity,在BActivity有个“退出程序”菜单,点击会退出程序。
定义一个工具类Sysutil用来退出程序,这样定义好处可以在多个Activity的时候复用,代码如下:
其中: intent.setFlag(Intent.FLAG_ACTIVITY_CLEAR_TOP) 表示,开启目标activity时,会清理栈中的其他activity.
在应用中如果要回到首页,也可以用这这个flag.
第三步:修改MainActivity.java,代码如下:
第四步:新建一个Activity命名为BAcivity.java,记得要在配置文件里申明哦~代码如下:
第五步:运行程序,直接进入了BActivity,点击菜单效果如下:
点击退出程序菜单,管你SDK是什么版本,就可以完全退出程序啦,有木有!有木有!呵呵~
这里要说明一下,如果我们的主Activity是单例模式的话,也就是launcheMode="singleTop|singleTask"如下面代码:
这时MainActivity执行了onNewIntent()方法,退出程序 在这里完成,以上只是我个人的片面理解,如果大家有更好的通用方法,可以告诉我,相互学习,谢谢大家!!!
同样为了让大家更容易理解,我做了一个Demo.为了省事,程序运行时我直接就从MainActivity跳转到BActivity,在BActivity有个“退出程序”菜单,点击会退出程序。
定义一个工具类Sysutil用来退出程序,这样定义好处可以在多个Activity的时候复用,代码如下:
其中: intent.setFlag(Intent.FLAG_ACTIVITY_CLEAR_TOP) 表示,开启目标activity时,会清理栈中的其他activity.
在应用中如果要回到首页,也可以用这这个flag.
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); } }
第五步:运行程序,直接进入了BActivity,点击菜单效果如下:
点击退出程序菜单,管你SDK是什么版本,就可以完全退出程序啦,有木有!有木有!呵呵~
这里要说明一下,如果我们的主Activity是单例模式的话,也就是launcheMode="singleTop|singleTask"如下面代码:
<activity android:name=".MainActivity" android:launchMode="singleTop" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
这时MainActivity执行了onNewIntent()方法,退出程序 在这里完成,以上只是我个人的片面理解,如果大家有更好的通用方法,可以告诉我,相互学习,谢谢大家!!!
发表评论
-
ListView与Button、imageButton 的共存问题解决
2013-02-20 11:39 1375ListView与Button、imageButton 的共存 ... -
android实现popupwindow的动画效果
2013-02-01 18:56 2047问题:在打开或者关闭popupwindow的时候怎么样显示动画 ... -
Android开发ViewPager中ListView失效问题解决方法
2013-01-28 22:12 2821最近开发一个Android小应用。就是利用ViewPager实 ... -
Android ViewGroup实现页面滑动效果并实现不同的动画效果
2012-08-28 22:24 3206这应该是自己第一次开始写博客,今天起想要记录下自己工作上学到的 ... -
关于WebView的loadData方法以及乱码问题
2012-08-09 14:37 1013WebView是Android应用开发 ... -
Android对图片的压缩读取和保存
2012-08-08 10:27 1428在开发图片浏览器等软件是,很多时候要显示图片的缩略图,而一般情 ... -
ubuntu下载android源代码
2012-07-22 00:50 2010用虚拟机来创建一个Ubun ... -
android面试(2)
2012-07-20 16:17 1142附带答案,共100分 一、选择题(30题,每题1.5分,共4 ... -
自定义PreferenceActivity——修改Preference样式、加顶部布局
2012-05-27 20:19 2751首先在res/xml文件夹下建立preferences.xml ... -
android拦截短信并屏蔽系统的Notification
2012-05-21 09:25 1873Android短信拦截,总的来说有两种方式: (一)、在代码 ... -
Android设置应用程序默认语言
2012-05-19 21:03 1607Android应用程序的国际化还是做得不错的,通过设置资源文件 ... -
(android 实战总结)android对html支持接口总结
2012-04-18 09:50 2435Android支持html 的两个接口 1 Spanned ... -
Android的TextView使用Html来处理图片显示、字体样式、超链接等
2012-04-16 11:09 1634转eoe:http://www.eoeandroid.com/ ... -
android的ant编译打包
2012-04-11 14:52 3988Android本身是支持ant打包项目的,并且SDK中自带一个 ... -
使用InputStreamEntity 边读取边上传文件
2012-04-09 17:32 7512HttpClient httpclient = new Def ... -
android xliff字符串操作
2012-04-09 14:59 1469参考:http://blog.csdn.net/freshma ... -
Android:只读EditText内容可滚动(禁止输入法)的实现
2012-04-06 12:00 1479实验设备为HTC hero (SDK 2.1-update1) ... -
Eclipse报内存溢出
2012-04-04 10:50 1155(1)在配置tomcat的JDK里面设置。Window--&g ... -
Android解压缩zip的实现
2012-03-20 11:21 2870android 解压缩zip包,需要在menifest.xml ... -
Android alertdialog的按钮点击后不消失
2012-03-15 20:35 1947使用反射: 在你的setPositiveButton中添加 ...
相关推荐
在VB.NET编程环境中,关闭应用程序是一项常见的操作,无论是退出整个应用程序还是关闭单个窗口。本文将深入探讨如何在VB.NET中实现这一功能,并提供具体的代码示例,以关闭指定的应用程序,例如QQ。同时,我们将讨论...
本篇文章将深入探讨如何使用C#来安全地关闭应用程序进程,包括但不限于使用`Process`类、`Application.Exit()`方法以及环境退出等技术。 #### 使用`Process`类关闭进程 `System.Diagnostics.Process`类提供了丰富...
9.如何关闭应用程序?(Visual C++编程 源代码)9.如何关闭应用程序?(Visual C++编程 源代码)9.如何关闭应用程序?(Visual C++编程 源代码)9.如何关闭应用程序?(Visual C++编程 源代码)9.如何关闭应用程序?...
.NET框架提供了多种方式来退出应用程序,每种方法适用于不同的场景,具有不同的特性和效果。本文主要探讨了.NET Windows应用程序退出的五种常见方法,并详细分析了它们之间的差异。 首先,`Form.Close`方法用于关闭...
本文档“Labview打开关闭应用程序.doc”将深入探讨如何在Labview中实现对应用程序的控制,包括启动和关闭外部程序的功能。 在Labview中,我们可以通过使用“系统执行”函数来实现对应用程序的操作。这些函数位于...
在Android应用开发中,通常我们希望用户在按下返回键时能够退出应用程序,但为了提供更好的用户体验,Android系统并不推荐直接在用户第一次点击返回键时就退出。为了实现“再按一次返回键退出应用程序”的功能,我们...
然而,对于初次使用Windows 10平板模式的用户来说,了解如何在这个模式下关闭应用程序可能会稍感困惑。本文将提供一份详细的指南,帮助用户掌握在Win10平板模式下关闭应用程序的几种方法。 首先,Windows 10平板...
根据给定文件的信息,我们可以看到这是一个基于Android平台的应用程序管理类,旨在实现一个全局的、能够一次性关闭所有活动(Activity)的功能,从而达到快速且彻底地退出应用的目的。 ### 一、重要知识点解析 ###...
这个类包含了处理程序退出逻辑的函数,确保在用户关闭应用或者系统需要释放资源时,应用程序能正确地保存状态、清理资源并退出。下面将详细讨论这个知识点。 在Android开发中,由于系统的后台进程管理机制,大部分...
本资源“安卓后台服务相关-Android中一键退出应用程序.rar”似乎包含了与实现一键退出应用相关的代码示例,这在某些场景下可能是必要的,比如优化内存占用或者提高用户体验。 首先,我们来深入理解一下Android的...
本文将深入探讨在不同Android版本下关闭应用程序的方法、权限需求以及最佳实践。 ### 关闭应用程序的方法 #### 1. 使用`ActivityManager` 通过`ActivityManager`,开发者可以重启或终止一个包中的所有进程。这在...
在 Mac OS X 里强制退出应用程序的六种方法 在 Mac OS X 系统中,强制退出应用程序是非常有必要的操作,因为有时候应用程序会卡住或崩溃,影响系统的稳定性。下面将介绍六种在 Mac 系统中强制退出程序的方法: ...
在本话题中,我们将探讨如何利用Delphi实现定时开启和关闭应用程序,以及如何结合系统托盘功能来实现这些功能。这在日常任务自动化、后台服务监控等方面具有广泛的应用。 首先,让我们深入了解Delphi中的定时任务。...
在苹果 Mac 系统中,当应用程序响应速度过慢或无响应时,用户可以使用强制退出命令关闭应用程序。下面将介绍五种强制退出应用程序的方法: 1. 使用 Dock 菜单栏里的强制退出键 在屏幕下方的 Dock 菜单栏中,找到...
如果需要强制关闭应用程序,可以使用`NativeApplication.nativeApplication.exit()`。 当应用在前台或后台运行时,NativeApplication会触发`Event.ACTIVATE`和`Event.DEACTIVATE`事件。可以监听这些事件来处理不同...
在Android系统中,由于其设计原则,通常不鼓励开发者实现一键退出应用的功能,因为系统会自动管理应用程序的内存资源。然而,用户有时可能有需求快速退出应用,这就涉及到如何在Android程序中实现这一功能。本篇文章...
在Android开发中,退出应用程序是一个常见的需求,尤其是在某些特定的应用场景下,用户可能希望完全关闭应用,而不是简单地退回到后台。本示例"退出Android应用程序Demo"将讲解如何实现这个功能,涉及到的关键知识点...
在开发Windows应用软件时,有时我们需要实现特定的功能,比如检测硬件设备的插入和移除,并根据这些事件来启动或关闭应用程序。在这个场景中,Visual C++ 提供了强大的API和库来实现这样的功能。以下是对这个主题的...
Python os库关闭应用程序
- 退出应用程序:用户可以通过任务管理器或系统菜单关闭不必要的应用程序,从而释放它们占用的内存。 - 清理缓存和临时文件:许多应用程序会缓存数据以提高性能,但这些缓存文件可能会占用大量内存。定期清理可以...