- 浏览: 129310 次
- 性别:
- 来自: 北京
最新评论
-
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 1308ListView与Button、imageButton 的共存 ... -
android实现popupwindow的动画效果
2013-02-01 18:56 1994问题:在打开或者关闭popupwindow的时候怎么样显示动画 ... -
Android开发ViewPager中ListView失效问题解决方法
2013-01-28 22:12 2755最近开发一个Android小应用。就是利用ViewPager实 ... -
Android ViewGroup实现页面滑动效果并实现不同的动画效果
2012-08-28 22:24 3122这应该是自己第一次开始写博客,今天起想要记录下自己工作上学到的 ... -
关于WebView的loadData方法以及乱码问题
2012-08-09 14:37 956WebView是Android应用开发 ... -
Android对图片的压缩读取和保存
2012-08-08 10:27 1375在开发图片浏览器等软件是,很多时候要显示图片的缩略图,而一般情 ... -
ubuntu下载android源代码
2012-07-22 00:50 1901用虚拟机来创建一个Ubun ... -
android面试(2)
2012-07-20 16:17 1068附带答案,共100分 一、选择题(30题,每题1.5分,共4 ... -
自定义PreferenceActivity——修改Preference样式、加顶部布局
2012-05-27 20:19 2686首先在res/xml文件夹下建立preferences.xml ... -
android拦截短信并屏蔽系统的Notification
2012-05-21 09:25 1785Android短信拦截,总的来说有两种方式: (一)、在代码 ... -
Android设置应用程序默认语言
2012-05-19 21:03 1521Android应用程序的国际化还是做得不错的,通过设置资源文件 ... -
(android 实战总结)android对html支持接口总结
2012-04-18 09:50 2374Android支持html 的两个接口 1 Spanned ... -
Android的TextView使用Html来处理图片显示、字体样式、超链接等
2012-04-16 11:09 1553转eoe:http://www.eoeandroid.com/ ... -
android的ant编译打包
2012-04-11 14:52 3905Android本身是支持ant打包项目的,并且SDK中自带一个 ... -
使用InputStreamEntity 边读取边上传文件
2012-04-09 17:32 7425HttpClient httpclient = new Def ... -
android xliff字符串操作
2012-04-09 14:59 1411参考:http://blog.csdn.net/freshma ... -
Android:只读EditText内容可滚动(禁止输入法)的实现
2012-04-06 12:00 1393实验设备为HTC hero (SDK 2.1-update1) ... -
Eclipse报内存溢出
2012-04-04 10:50 1098(1)在配置tomcat的JDK里面设置。Window--&g ... -
Android解压缩zip的实现
2012-03-20 11:21 2824android 解压缩zip包,需要在menifest.xml ... -
Android alertdialog的按钮点击后不消失
2012-03-15 20:35 1860使用反射: 在你的setPositiveButton中添加 ...
相关推荐
9.如何关闭应用程序?(Visual C++编程 源代码)9.如何关闭应用程序?(Visual C++编程 源代码)9.如何关闭应用程序?(Visual C++编程 源代码)9.如何关闭应用程序?(Visual C++编程 源代码)9.如何关闭应用程序?...
vb.net关闭应用程序的代码 本例是关闭QQ的代码 关闭其它应用程序只要稍改一下就可以
遇到了很多问题,其中一个问题是:点击退出按钮,应用程序关闭但是***.exe依然存在内存,所以下面谈谈.NET Windows应用程序退出的方法。 .NET退出程序或者线程一般有以下五个方法: 1.Form.Close 方法 2....
一个Windows应用程序启动之后,一般是进入消息循环,等待或者处理用户的输入,直到用户关闭应用程序窗口,退出应用程序为止。 例如,用户按主窗口的关闭按钮,或者选择执行系统菜单“关闭”,或者从“文件”菜单选择...
Android中实现再按一次返回键退出应用程序,详细了解请移步:http://blog.csdn.net/zxc514257857/article/details/64234676
讲述Labview打开关闭应用程序,文档内有例程,多多支持
C#关闭应用程序进程C#关闭应用程序进程
一键退出应用程序
Android中实现一键退出应用程序,详细了解请移步:http://blog.csdn.net/zxc514257857/article/details/62104900
退出应用程序工具类
Python os库关闭应用程序
Android中一键退出应用程序.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Android彻底退出应用程序.doc
Android 返回键退出代码,第一次提示用户再按一次返回键退出,两秒钟内再按一次则退出程序,否则认为用户取消了退出操作!下下来就可以用,绝对好用哦~~~!!
实现完全退出应用程序功能,停止所有应用程序的Activity,停止Service
正常关闭应用程序: 当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用: 第一种方法:首先获取当前进程的id,然后杀死该进程。 android.os.Process.killProcess(android.os.Process.myPid...
本文实例讲述了Android完全退出应用程序的方法。分享给大家供大家参考。具体如下: 在Android中,如果想退出Android程序,一般都是调用finish()、System.exit(0)、android.os.Process.killProcess(android.os....
在退出时,遍历该list的activity,逐个关闭每一个activity,从而退出app 2 设置入口activity的启动模式android:launchMode="singleTask",重写onNewIntent方法, 在退出activity时,设置intent.setAction("exit_app...
这是一个delphi小程序,可以关闭外部应用程序! 里面的内容比较简介,适合于delphi的初学者参考,刚用delphi不久,就先传些这些吧!
Flutter教程-点按两次即可关闭应用 双击以关闭应用程序,还可以通过听Flutter中的BackButton了解如何以编程方式退出应用程序。 :victory_hand: 预览应用预览课程预览 ➜ :television: 看视频,其中说明了源代码。 ➜...