如何安全退出 Activity

对于单一 Activity 的应用,直接 finish(),也可以用 killProcess()(关闭进程)和 System.exit(0)(退出虚拟机)
对于多 Activity 的应用,退出有几个方法:
1,抛出异常强制退出:
通过抛出异常,使程序Force Close.可以退出,但需要解决弹出Force Close窗口的问题

2.记录打开的Activity:
没打开一个activity,就记录下来,在需要退出的时候,关闭每一个打开的activity。
List<Activity> activityList=new ArrayList<Activity>();
public void setActivityList(Activity a){
activityList.add(a);
}

public void deleteActivityList(){
for(Activity a:activityList){
a.finish();
}
}

3.发送特定的广播:
(1)在Activity里注册广播:
MyReceiver receiver=new MyReceiver();
IntentFilter filter=new IntentFilter();
filter.addAction(Intent.ACTION_EDIT);
super.registerReceiver(receiver, filter);
(2)在MyReceiver里获得广播消息写相应的处理方法关闭activity

(3)在关闭时发广播:
Intent intent= new Intent();
intent.setAction("finish");
super.sendBroadCast(intent);

4.递归退出:
在打开新的Activity是使用startActivityForResult,然后加标签,在onActivityResult中处理,递归关闭。

时间: 2024-10-23 07:48:16

如何安全退出 Activity的相关文章

android开发完全退出activity

我们退出Activity可以调用:finish(),system(0),但是这些都只是单单退出单个Activity 也有人会说,直接把进程杀死,这些做法都不是很可取,其实我们翻看api可以发现,Activity 都是放入stack中管理,我们只要把stack清空了,不就完全退出了嘛.要对Activity的stack 管理,就需要了解launchMode的四种状态,这里就不多说了,自己看看api. 我们就利用android:launchMode="singleTop",当该Activit

Android双击返回键退出Activity的两种方法

在开发应用程序的时候,有一种功能是非常常用到的,那就是迅速双击返回按钮,然后实现退出Activity的功能.本人在网上看了很多资料代码,总结起来,主要有两种比较好的方式.一种是开线程延时执行,一种是记录按键时间计算时间差实现.现在跟大家分享一下,代码如下,希望对大家有帮助: 第一种:利用线程延时实现: private int mBackKeyPressedTimes = 0; @Override public void onBackPressed() { if (mBackKeyPressedT

退出Activity(转)

退出Activity 如何退出Activity?如何安全退出已调用多个Activity的Application? 退出activity 直接调用 finish () 方法 . //用户点击back键 就是退出一个activity 退出activity 会执行 onDestroy()方法 . 1.抛异常强制退出: 该方法通过抛异常,使程序Force Close. 验证可以,但是,需要解决的问题是,如何使程序结束掉,而不弹出Force Close的窗口. //安全结束进程  android.os.P

Android 退出Activity

在一个Process或一个处理线程中退出Activity可以用context来退出,如下: ((Activity)context).finish(); Android程序有很多Activity,比如说主窗口A,调用了子窗口B,如果在B中直接finish(), 接下里显示的是A.在B中如何关闭整个Android应用程序呢?本人总结了几种比较简单的实现方法. 1. Dalvik VM的本地方法 android.os.Process.killProcess(android.os.Process.myP

Android双击返回键退出Activity的方法

第一种:利用线程延时实现: private int mBackKeyPressedTimes = 0; @Override public void onBackPressed() { if (mBackKeyPressedTimes == 0) { Toast.makeText(this, "再按一次退出程序 ", Toast.LENGTH_SHORT).show(); mBackKeyPressedTimes = 1; new Thread() { @Override public

Android第四十二期 - 关于微信手势退出Activity的操作

微信现在支持手势退出当前Activity了,我也接到需求就写了,代码已经整理好,效果图如下: public GestureDetector gestureDetector = new GestureDetector( new OnGestureListener() { @Override public boolean onSingleTapUp(MotionEvent e) { return false; } @Override public void onShowPress(MotionEve

如何随时随地退出Activity,在退出Activity的时候关闭之前的Activity,如何退出程序所有Activity

这是一个基础的问题,没什么难度,只是一个小的逻辑的问题的实现.为了以后有需要方便,保存下来.新学习的同学可以参考下. 首先,在写项目的时候一般我们会写BaseActivity,这个类 继承Activity其他Activity继承BaseActivity. 所以,思路就是  我们写一个ActivityCollector  这样一个类用来添加和移除 Activity ,每一个activity都继承BaseActivity  所以我们可以再BaseActivity的onCreate方法中把当前 Act

android退出Activity

对于单一Activity的应用来说,直接finish() 或者killProcess()和System.exit() 退出. 但是对于多Activity个可以使用单例模式创建一个Activity管理对象,该对象中有一个Activity容器(通过List来存放)专门负责存储新开启的每一个Activity,实例代码: MyApplication类(储存每一个Activity,并实现关闭所有Activity的操作) public class MyApplication extends Applicat

android——activity添加退出动画

在finish()语句后加 //该方法的参数:前者是将要进入activity的进入动画,后者是正要退出activity的动画 overridePendingTransition(R.anim.abc_fade_in,R.anim.login_activity_out); 2.特别注意两个动画的时间要一致: