android退出activity的方法,android程序退出當前activity的方法

Android程序有很多Activity,比如說主窗口A,調用了子窗口B,如果在B中直接finish(), 接下里顯示的是A。在B中如何關閉整個Android應用程序呢?本人總結了幾種比較簡單的實現方法。

1. Dalvik VM的本地方法

android.os.Process.killProcess(android.os.Process.myPid())//獲取PID

System.exit(0); //常規java、c#的標准退出法,返回值為0代表正常退出

2. 任務管理器方法

首先要說明該方法運行在Android 1.5 APILevel為3以上才可以,同時需要權限

ActivityManager am= (ActivityManager)getSystemService (Context.ACTIVITY_SERVICE);

am.restartPackage(getPackageName());

系統會將,該包下的 ,所有進程,服務,全部殺掉,就可以殺干凈了,要注意加上

3. 根據Activity的聲明周期

3. 我們知道Android的窗口類提供了歷史棧,我們可以通過stack的原理來巧妙的實現,這里我們在A窗口打開B窗口時在Intent中直接加入標志Intent.FLAG_ACTIVITY_CLEAR_TOP,這樣開啟B時將會清除該進程空間的所有Activity。

在A窗口中使用下面的代碼調用B窗口

Intent intent = newIntent();

intent.setClass(Android123.this,CWJ.class);

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//注意本行的FLAG設置

startActivity(intent);

接下來在B窗口中需要退出時直接使用finish方法即可全部退出。

4.自定義一個Actiivty 棧,道理同上,不過利用一個單例模式的Activity棧來管理所有Activity。並提供退出所有Activity的方法。代碼如下:

public classScreenManager {

private staticStack activityStack;

private staticScreenManager instance;

privateScreenManager(){

}

public staticScreenManager getScreenManager(){

instance=newScreenManager();

}

return instance;

}

//退出棧頂Activity

public voidpopActivity(Activity activity){

activity.finish();

activityStack.remove(activity);

activity=null;

}

}

//獲得當前棧頂Activity

public ActivitycurrentActivity(){

Activityactivity=activityStack.lastElement();

return activity;

}

//將當前Activity推入棧中

public voidpushActivity(Activity activity){

activityStack=newStack();

}

activityStack.add(activity);

}

//退出棧中所有Activity

public voidpopAllActivityExceptOne(Class cls){

while(true){

Activityactivity=currentActivity();

break;

}

break;

}

popActivity(activity);

}

}

}

android 退出activity 的方式总结 android中使用:[activityname].this.finish();  只是退出activity的堆栈中,要真正的退出程序在手机cpu中的运行,当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用: 一   使用killProcess()函数,首先获取当前进程的id,然后杀死该进程: android.os.Process.killP 阅读详情

相关推荐

在 SAP HANA 与 HANA Cloud 中,用 SQL DDL 创建数据库视图:从设计时工件到运行时对象的全链路实践

本文介绍了在SAP HANA中通过HDI容器使用DDL定义视图的方法。主要内容包括:1)采用.hdbview设计时工件存储视图定义,构建时自动转换为运行时视图,实现版本控制和权限隔离;2)开发前需准备HDI容器、MTA项目及配置.hdiconfig文件;3)详细说明.hdbview语法结构,重点讲解WITH READ ONLY和WITH STRUCTURED PRIVILEGE CHECK的使用场景;4)提供了从创建文件到构建验证的完整流程示例;5)强调跨容器访问时需通过.hdbgrants为#OO用户授予

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 230

Activity退出的几种方式

通常的,我们点击返回键,如果我们没有做特殊处理,那么我们的activity会被销毁,那他是怎么实现的呢在监听onkeyUP事件上,我们发现父类的处理是这样的,如果是back事件,会走onBackPressed&&!return;if (!return;if (!return;try {});finishAfterTransition 会调用finish 实现销毁if (!finish();通常我们在app需要实现点击两次退出的,可以在onPressed中做文章。

bolt_007的博客 1690

机械毕业设计——用于带式运输机传动装置中的同轴式二级圆柱齿轮减速器(论文+DWG图纸).zip

机械毕业设计,包含论文和DWG图纸

Android退出应用最优雅的方式

我们先来看看几种常见的退出方法(不优雅的方式) 一、容器式          建立一个全局容器,把所有的Activity存储起来,退出时循环遍历finish所有Activity          import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.

源码有毒的专栏 9341

Android 退出Activity的方式

参考  http://www.cnblogs.com/meizixiong/archive/2013/07/03/3170591.html 退出单个Activity方法:       1. 调用finish    2. 杀死该进程:killprocess(Process.mId)        3. 终止正在运行的虚拟机:system.exit()

dennycking的博客 867

android程序退出当前activity方法

Android程序有很多Activity,比如说主窗口A,调用了子窗口B,如果在B中直接finish(), 接下里显示的是A。在B中如何关闭整个Android应用程序呢?本人总结了几种比较简单的实现方法。   1. Dalvik VM的本地方法   android.os.Process.killProcess(android.os.Process.myPid())//获取PID

lili518的博客 2606

退出Android application的方法

从网上查了些退出Android程序方法,下面两个都只能退出当前activity: 1. System.exit(0); 2. android.os.Process.killProcess(android.os.Process.myPid()); 下面的方法可以完全退出程序: 把MainActivity设为singleTask。发一个Intent到MainActivity,...

weixin_30823833的博客 353

android退出所有activity

1、先写一个父类继承Activity如BaseActivity,其他的Activity都继承此父类BaseActivity,在BaseActivity写如下重要的两个方法: ?    private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {    

zhangzhilai8的专栏 1252

Android 退出Activity方法

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34345753的博客 410

Android 退出所有Activity

转载:这里有两种方式退出Activity:第一种:退出当前Activity:   思路:记录当前时间,然后,当点击的时间与当前时间间隔小于三秒,则退出。   方法:在要退出Activity 添加如下代码:private long time;    //记录当前时间@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if ...

kinderkindme的博客 1206

Android:销毁所有的Activity退出应用程序几种方式

Android:销毁所有的Activity退出应用程序几种方式 author:DRC工作室  我们都知道,Activity是存放在栈中。在默认的情况下(standard)Activity在栈中是以先进后出、后进先出的方式进行存放。最开始出现的Activity会存在栈底,最新启动的Activity总是会存在栈顶。当我们开启的Activity越来越多,当前想在某个界面退出当前应用程序

u013804382的博客 5万+

Android开发——如何完全退出Activity

在网上看了好多大牛关于完全退出Android应用程序Activity的处理方式,我总结出一下几个方法: 1、创建一个Activity的基类,重写startActivity()方法,在里面添加一句finish()。其他的Activity继承这个基类,这样在启动一个新的Acitivty之前就可以退出前一个Acitivity。当然这样有一个坏处是当返回时不能返回到前一...

weixin_30664615的博客 283

如何退出Activity?如何安全退出已调用多个Activity的Application?

对于单一Activity的应用来说,退出很简单,直接finish()即可。 当然,也可以用killProcess()和System.exit()这样的方法。 但是,对于多Activity的应用来说,在打开多个Activity后,如果想在最后打开的Activity直接退出,上边的方法都是没有用的,因为上边的方法都是结束一个Activity而已。 当然,网上也有人说可以。 就好像有人问,在

流星火的博客 860
上一篇: android导航栏字体,Android – 如何更改底部导航栏文本的字体...
下一篇: android gesturedetector点击与长按,andorid 使用手势监听器GestureDetector遇到的不响应问题...
kyosanto
博客等级 码龄8年 39粉丝 83原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值