Android退出程序的方法

如果退出当前运行的Activity,可以使用 this.finish() 或者 System.exit(0) 。

如果退出整个 程序,如下操作:

方式一:

Intent intent=new Intent(Intent.ACTION_MAIN);  

intent.addCategory(Intent.CATEGORY_HOME);  

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  

this.startActivity(intent);  

System.exit(0);

方式二:

android.os.Process.killProcess

(android.os.Process.myPid());

android 完全退出 程序

有几个activity,有一需求是在一个activityA点击back键退出系统而不是跳到之前的 activity

首先想到的是清空activityA的堆栈,使用intent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); 但是该activityA不是已经存在于堆栈底端的,所以清除的只是堆栈中 该activityA上面的activity,但后退后还是会返回堆栈中该activityA下面的activity。

然后想到的 是截获back按键的事件,使用System.exit(0)和android.os.Process.killProcess (android.os.Process.myPid())来退出程序,还是不行,当前的activityA是被干掉了,但是还是会被 ActivityManager接管返回到前一个activity。而且如果之前activity需要一些传过来的参数的话会导致程序 连续抛异常。

最后终于找到一个可行的方法:使用ActivityManager彻底退出程序

ActivityManager manager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
manager.restartPackage(getPackageName());

需要声明权限<uses-permission android:name="android.permission.RESTART_PACKAGES"/>

这种方法会终止一切和这个 程序包关联的,所有共享同一uid的process被kill,所有的activity会被removed

所有创建的服务会停 止,还会发一个广播 Intent.ACTION_PACKAGE_RESTARTED 导致所有注册alarms被stopped, notifications 被 removed。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, 程序
, activity
, 堆栈
, android intent
, home键退出
, intent
, Back键连续点击
, Back点击退出
, BACK键退出
, this与Activity.this
, activity堆栈
, activity堆栈管理
退出所有activity
android 退出程序、android退出整个程序、android 监听程序退出、android 退出程序代码、android 退出应用程序,以便于您获取更多的相关知识。

时间: 2024-08-01 20:41:27

Android退出程序的方法的相关文章

Android 重写系统Crash处理类,保存Crash信息到SD卡 和 完美退出程序的方法

转载时注明地址:http://blog.csdn.net/xiaanming/article/details/9344703 我们开发Android应用的时候,当出现Crash的时候,系统弹出一个警告框,如下图一,有些手机会黑屏几秒钟然后还伴随着振动,作为我们开发人员,是很讨厌这样子的Crash,因为这意味着我们又要改bug,每个程序员都希望自己开发出来的东西bug少点,稳定点,但是没有bug的程序几乎是不可能的,作为用户,如果出现这样子的警告框,他的心情也会很不爽,也许还会破口大骂,如果用图二

Android开发退出程序的方法汇总

Android程序有很多Activity,比如说主窗口A,调用了子窗口B,子窗口B又调用子窗口C,back返回子窗口B后,在B中如何关闭整个Android应用程序呢? 下面脚本之家小编就给大家介绍android开发退出程序的几种方法. 1.finish()方法 finish是Activity的类,仅仅针对Activity,当调用finish()时,只是将活动推向后台,并没有立即释放内存,活动的资源并没有被清理:调用finish()方法会执行Activity.onDestroy()方法,结束Act

Android 双击返回键退出程序的方法总结

Android 双击返回键退出程序的方法总结 下面先说说LZ思路,具体如下: 1. 第一种就是根据用户点击俩次的时间间隔去判断是否退出程序; 2. 第二种就是使用Android中计时器(Timer),其实这俩种都差不多. 思路是有了,,,接下来要怎么开搞呢???用户点击肯定会触发相应的事件,,,我们先来看下面俩个事件的作用... Activity.onKeyDown(); 当某个键被按下时会触发,但不会被任何的该Activity内的任何view处理. 默认按下KEYCODE_BACK键后会回到上

Android Notification 使用方法详解

Android Notification 使用方法详解 用TaskStackBuilder来获取PendingIntent处理点击跳转到别的Activity,首先是用一般的PendingIntent来进行跳转. mBuilder = new NotificationCompat.Builder(this).setContent(view) .setSmallIcon(R.drawable.icon).setTicker("新资讯") .setWhen(System.currentTim

Android webview使用方法总结

Android webview使用方法总结 这里对Android webview的几种用法进行了总结,提供了九种用法,都要简单实例,大家可以参考下: 1. 打开网页时不调用系统浏览器, 而是在本WebView中显示: mWebView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url

android中setVisibility()方法失效了

问题描述 android中setVisibility()方法失效了 在viewpager中嵌入fragment,然后通过菜单键改变布局,调用setVisibility()方法的时候无效,百度一下看到有人说调用clearAnimation()能解决,试了下,还是不行...菜鸟求解释... 解决方案 android view的setVisibility方法值的意思android view的setVisibility方法值的意思android view的setVisibility方法值的意思 解决方案

Android Service中方法使用详细介绍

  Android Service中方法使用详细介绍 在Android中,Activity主要负责前台页面的展示,Service主要负责需要长期运行的任务.例如,一个从service播放音乐的音乐播放器,应被设置为前台运行,因为用户会明确地注意它的运行.在状态栏中的通知可能会显示当前的歌曲并且允许用户启动一个activity来与音乐播放器交互. Service的两种实现形式 1.非绑定 通过调用应用程序组件(例如Activity)的startService()方法来启动一个服务.一旦启动,服务就

android-js如何主动访问Android和ios方法,并返回数据

问题描述 js如何主动访问Android和ios方法,并返回数据 您好,我是做webapp的开发的,最近遇到一个问题,就是js如何主动调用Android的方法并返回参数,想请问大神您知道怎么处理吗? 解决方案 下面是我写的一些示例: MGSD.Static.IOS = "iOS"; MGSD.Static.ANDROID = "android"; MGSD.exchange = function(value, funcname){ if(!MGSD.OS){//第一

java-关于android中onCreat方法问题

问题描述 关于android中onCreat方法问题 子类重写onCreat方法之后为什么还要 强行调用父类的onCreat方法,有人分析说是现场保护问题,那么如何理解现场保护问题呢 解决方案 onCreate()里面是有一个参数的. 当你的activity由于内存不足等原因被回收的时候,你可以在onsaveinstance()方法里面进行保存一些控件的状态. 这样当你重新打开activity的时候,也就是重新创建的时候.可以通过onCreate方法里的这个对象获取这些状态来进行数据的恢复~ 解