如何关闭当前activity

返回键回到上一个浏览页面。于是我重写了返回键,但是fragment里面并没有onKeyDown方法,于是我在fragment里面写了一个静态方法,并在activity的onKeyDown方法中调用它,这样就能把点击事件传到fragment中来处理。如下:
activity中的onKeyDown方法:

 public boolean onKeyDown(int keyCode, KeyEvent event) {
if(currentIndex==1){ //当前显示WebFragment
WebFragment.clickBack(keyCode, event);
return true;
}
return super.onKeyDown(keyCode, event);
}

这是WebFragment中的clickBack方法

 public static boolean clickBack(int keycode,KeyEvent event){
if(keycode==KeyEvent.KEYCODE_BACK&&webView.canGoBack()){//页面能返回
webView.goBack();
}else if(keycode==KeyEvent.KEYCODE_BACK&&!webView.canGoBack()){//不能返回

}
return true;
}

但是呢,我希望WebFragment中 页面不能返回的时候能退出当前activity。但是clickBack是一个静态方法,并不能调用getActivity.finish()。 。。请问有什么好的方法能解决这个问题吗?我只是希望WebFragment中的webView页面能返回时,点击返回键返回上一个页面;当webView页面不能返回时,点击返回键退出当前activity。。求解~~

4个回答

你的上一个界面是activity吗?
fragment肯定是包括在activity中使用的。
如果你的上一个界面也是activity的话,就在包括你的web fragment的 activity里面调用**finish**方法就行、
如果上一个界面也是fragment。因该是两个fragment的切换问题了。可以调用fragment的**hide**和**show**方法或者**replace**方法、

直接finish就可以了吧?

代码太长了没看。。。但是如果你从一个activity中跳出,而且按返回键时不想再返回到那个activity了,在跳出动作的同时调用finish()就好了,相当于销毁了这个activity

你别用静态方法啊,不用静态方法也可以的啊,那样不就能调用finish了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
怎么销毁一个Activity,点击按钮退出activity

Back键 finish()方法: 例如监听按钮button1,点击按钮销毁activity //修改按钮监听器中的代码

利用GestureDetector关闭activity

利用GestureDetector关闭activity 手势向右滑动关闭当前activity

初学Android,启动,关闭Activity(七)

Acitivity启动其他Activity有如下两种方法 startActivity(Intent intent): 启动其它ActivitystartActivityForResult(Intent intent,int requestCode): 以指请求码启动Activity,而且程序将会得到新启动Activity的结果(重写onActivityResult(...)方法获取)相对的,也有两

四种结束当前的activity方法

每一个activity都有自己的生命周期,被打开了最终就要被关闭。 四种结束当前的activity方法 Java代码 //关闭当前activity方法一 finish(); //关闭当前界面方法二 android.os.Process.killProcess(android.os.Process.myPid()); //关闭当前界面方法三 System.exit(

fragment 向另一个activity传值并关闭当前activity

其实也是一个挺简单的东西,但还是怕忘记到时候又得四处找资料。记录下来参考。 主要是startActivityForResult的用法 1、主要代码 2、主要代码 效果:

在adapter里面关闭当前的activity

if (Activity.class.isInstance(mComent)) { // 转化为activity,然后finish就行了 Activity activity = (Activity) mComent; activity.finish(); }

打开一个新的activity并关闭当前activity,以及intent的用法

Intent intent = new Intent();    intent.setClass(Forward.this, ForwardTarget.class);//forward为当前activity,forwardTarget为新的activity    startActivity(intent);    finish();   Intent用法实例 1.无参

如何在listview的adapter中关闭listview所在的activity

假如我们需要在listview的adapter中的某个控件如textview中关闭listview所在的activity(暂且称为主activity吧),我们改怎么做?

Fragment关闭指定页面

好记性不如烂笔头,没事记录下,下次需要可以直接就能看了。 使用fragment需要记住这4个步骤 1.获取FragmentManager管理器,有个v4包下的,一般都用这个 getSupportFragmentManager(); 2.开启事务,fragmentManager.beginTransaction() 3.添加fragment 或者替换       add 和 replace

关闭activity的方式

//关闭当前activity方法一 finish(); //关闭当前界面方法二 android.os.Process.killProcess(android.os.Process.myPid()); //关闭当前界面方法三 System.exit(0); //关闭当前界面方法四 this.onDestroy(); 当前已经启动了四个Activity:A,B,C和D, 在D Acti

android activity的关闭处理的几种方式

项目中我们往往要用到关闭程序时销毁所有的activity,而且这也是面试经常遇到的问题,退出程序的方式也有好几种,一下是一些处理关闭程序的方法: 1.最简单的方式就是使用系统的方法exit(0),这是最简单粗暴的方式,强制程序退出,但是这种方法针对部分机型有可能不太好使,退出时有可能出现程序崩溃的弹出框,或者程序会重新启动,这对用户体验来说不是很好。 2.抛出异常强制退出,这种方法的使用对用户

Android-点击WebView中的按钮,关闭当前activity

项目开发中WebView用的很多。但是,有时候不仅仅是展示。还需要交互。比如点击WebView中的按钮,关闭当前activity等等。 正常WebView加载不在多说。分别说一下,前后端处理方式: 1.服务端: 在html网页编写的时候。点击按钮添加点击事件: <!DOCTYPE html> <html> <head> <...

Activity退出的几种方式

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

android activity跳转后如何关闭父activity

如题,A,B两个activity,点击A中按钮跳转到B中,跳转后如何自动关闭A?请给出个简单的说明或者代码。谢谢!

关闭activity之前的所有activity,好方法

之前写的应用项目,当遇到要关闭一个activity页面的activity时,一直就是使用这种方式:“当有多个Activity时,通过键值对容器动态添加Activity,然后根据key删除相对应的Activity就可以进行跨Activity来关闭界面”;一般这种方式只是针对于零散的方式。对于直接关闭一个activity之前的所有Activity页面很简单,清理activity堆栈就好了:Intent

Activity管理Fragment之Fragment关闭当前回到之前Fragment

直接上代码说明: 首先默认你已经写好了一个Activity并至少添加了一个Fragment,下面是我的Activity中Fragment的布局代码和java代码; Activity中Fragment的布局代码: xml version="1.0" encoding="utf-8"?> xmlns:android="http://schemas.android.com/apk/res/an

android中关闭所有activity方法

在android中退出app时关闭所有Activity的方式有很多,例如发送一个全局的BroadCast、直接杀死当前的pid、、、但是如果我们做的功能是一个sdk那情况就不一样了。。经过项目上线后惨痛的教训我们决定还是通过自定义Stack来管理我们的activity。       首先说说这个坑人的BroadCast,因为我们发送的是无序广播,不知道那个Activity会先收到,这个导致了一个

Android中退出Activity的方法

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

Android 退出Activity

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

Android 在一个activity中关闭另一个activity

参考链接:http://www.360doc.com/content/15/0813/14/26657790_491381895.shtml

Activity C中关闭Activity A的方法

在A里面设置一个静态的变量instance,初始化为this 在C里面,A.instance.finish() 如果原生项目接入RN项目后,怎么关闭RN界面呢? 道理和上述方法一样: 在RN界面调用原生方法,在原生方法中使用上诉方法即可。 代码如下: RN界面添加点击方法:方法的内容为调用原生方法<TouchableOpacity onPress={this.onPressOut.bind

Activity退出的六种方式

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

Android右滑关闭当前Activity

转载请注明出处:meijian531161724 常常可以看到,很多Android应用都有这么一个功能,就是滑动关闭Activity,比如微信,CSDN移动端,百度贴吧移动端等。我自己也想写个滑动关闭Activity,最近事情没有那么多,我就google了一下,查看了一下实现滑动关闭Activity的实现方法,其中,有个思路,我觉得很不错,因此,在这里,我通过别人的思路,自己实现了一下滑

杀死全部的Activity,退出当前程序

杀死全部的Activity,退出当前程序 首先说明finish()杀死的只是当前的Activity,并不是全部的Activity   方法一:Dalvik VM的本地方法  1、android.os.Process.killProcess(android.os.Process.myPid())       获取PID,目前获取自己的也只有该API,否则从/proc中自己的枚

android 在activity里面关闭指定的页面

在要关闭的activity页面添加一个静态方法,然后在onCreate初始化 static Activity AActivity; onCreate(){ AActivity=this; }在当前页面 AActivity.AActivity.finsh()

判断某Activity是否在系统中存在?是否启动过?以及让它自行关闭

有些时候,可能需要判断系统中是否存在某个Activity?它是否已经启动? 比如,如果它要是存在,我就用(CLEAR_TOP)的方式启动它,以便它自行关闭! protected void startAndExit() { logi(TAG, "---startAndExit---"); Intent intent = new Intent(this, ActivityMain.cla

android开发中需要关闭指定activity的方法

问题:在android开发中,总会遇到进入某个activity之后需要关闭其他部分activity,怎么解决呢? 最直接粗暴的解决办法就是:       步骤一:在需要关闭的那个activity中设置一个变量记录这个activity。例如:            public static Activity1 instance;       步骤二:在

关闭android程序里所有的activity

做过Android开发的人都知道,应用程序点击返回键 或者 代码显示调用了Activity.finish()方法都无法完全退出,通过任务管理工具可以看到他们还在进程中。 下面我将分享 OSChina.NET Android版客户端 完全退出程序的方法: 1. 添加权限 2. 导入AppManager工具类 AppManager类是一个自定义的工具类,作用是将应用程序所有启动的Activity都添

Android 一次性退出所有Activity

private void backToInit() { Intent startMain = new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_HOME); startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TAS

在Fragment中我想点击按钮然后关闭当前的Fragment返回上一个Fragment该如何实现。

引用 3 楼 WantD 的回复: 这样: FragmentTransaction ft2 = getFragmentManager().beginTransaction(); ft2.replace(R.id.searoot_frame, new FragmentSeaGateStoryBookView()); ft2.setTransition(FragmentTransactio

隐藏Activity到后台而不关闭

moveTaskToBack()方法:在activity中调用 moveTaskToBack (boolean nonRoot)方法即可将activity 退到后台,注意不是finish()退出。 参数说明: 参数为false——代表只有当前activity是task根,指应用启动的第一个activity时,才有效; 参数为true——则忽略这个限制,任何activity都可以

Android页面跳转结束前一个activity

在付款页面,支付未成功跳转至待付款订单页面,同时需要结束掉付款页面,即在待付款订单页面按返回键,直接显示的商品详情页面: A–>B–>C: 结束C的时候,直接显示A 在B界面: public static ActivityB instance = null; 在onCreate()方法中: instance = this; 在C界面: 调用finish()方法之前, `if (Ac

关于back键隐藏当前activity和销毁Activity的两个监听方法

此两种方法可直接使用 第一个方法:当前 //true对任何Activity都 进栈,未销毁。 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { moveTaskToBack(true);

打开一个Activity, 关闭之前所有的Activity.

方法一 :  Intent intent = new Intent(this, LoginActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); 方法二 : public clas

Android开发 - 如何完全退出Activity

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

通过广播在当前Activity关闭其他Activity

/** * 发送广播关闭指定Activity */ public class BaseActivity extends Activity { //根据需求定义自己需要关闭页面的action public static final String RECEIVER_ACTION_FINISH_A = "action_a"; private FinishActivityRe

Android Activity栈管理 制定关闭某一个Activity,关闭所有Activity

系统Api :打开新的Activity 关闭之前所有ActivityIntent intent = new Intent(this, LoginActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);自己管理: 将...

Android中同时关闭多个Activity

因为Android中特殊实体键返回的存在,我们进入下个Activity之后,因为某种原因返回,所以在此时在进入下个Activity时不能关闭当前的Activity.但是当我们登陆成功进入主界面之后我们又需要关闭某些Activity,所以就有了下文:目前找到有两种方法方法一:通过广播来关闭,一些指定的Activitysetp1:在每个Activity中注册B

关闭所有当前运行程序所有的Activity

关闭所有当前运行程序所有的Activity的android代码

activity——按back键会让当前activity消亡

转自http://blog.csdn.net/hudashi/article/details/6896321 按back键会让当前activity调用onDestroy并消亡,且不调用onSaveInstanceState(Bundle)。 默认情况下,按back键,Activity会调用finish()。finish()的调用是在Activity的onBackPressed(),你可以重

android关闭指定的activity

android关闭指定的activity

Android 如何安全地关闭Activity

方法一:使用缓存1、创建BaseActivity继承ActionBarActivity 2、定义缓存private List<BaseActivity> mActivities = new LinkedList<BaseActivity>(); public static BaseActivity activity;3、在onCreate里添加activity@Override prote

android Activity右滑返回,退出当前activity

发现目前很多app应用,都具有左滑返回的功能,而且感觉体验很是愉快,尤其酷狗音乐左滑返回的实现,更是炫酷。今天就学习了,具体实现。先看一下效果图吧:准备: 有两种方案:1:添加库文件(推荐用这种) 2:添加依赖 compile ‘me.imid.swipebacklayout.lib:library:1.0.0’为什么添加库文件呢?后面在做解释。先写一个 BaseActivity 继承

Android中几种关闭Activity或app的方法

1. finish()方法 该方法可以结束当前 Activity,但是如果你的App有很多 Activity 的话,使用该方法显得有点捉襟见肘了。 另外,还有一个方法finishActivity (int requestCode) ,关于这个方法,先看看sdk的api说明吧! view plain public void finishActivity (in

Android跳转到系统Activity关闭并返回原Activity的解决办法

在Android开发时,有时因为需求,需要跳转到系统的一些页面,比如从UI中跳转到系统设置项、WIFI设置等,那要如何返回到原来的Activity中呢? 我们可以通过WindowManager来实现。原理可以简单的理解为在跳转到系统的Activity中后,在该Activity的上方添加一个按钮,然后对这个按钮添加事件。 先看看效果图 实现代码如下 CallSystemActivit

实现随时随地一键退出所有Activity

《实现随时随地一键退出所有Activity》现在很多应用都拥有很多界面,然而页面加载多了,退出是一个很头疼的问题启动了多少次界面就需要按多少次返回键,非常的不方便。按Home键虽然吧程序挂起了,但是并没有退出程序。相信这个问题早就引起你的注意,现在很多程序都有一键退出、注销的功能该怎么实现呢?所以要有一个随时随地都能够退出的方案才行。这里用一个专门的集合类对所有的活动进行管理实现一键退出所有Activity

android彻底杀死当前activity和线程方法

 有时我们想关闭当前的activity时,用finished()回到menu后,这个activity不是存在。所以想彻底删除当前的activity,可以用以下方法. 方法一: @Override protected void onDestroy() { super.onDestroy(); a

安全退出Activity的六种方式

一、容器式建立一个全局容器,每开启一个Activity就在这个容器中添加一个,等到要退出应用的是否,遍历这个容器,推出每个Activity二、广播式每创建一个一个Activity就注册一个广播接收者,当需要退出的时候,就发送一个特定的广播,让所有的Activity结束掉三、进程式通过直接杀死进程来达到退出应用的目的,但是有些国产机可能失效,只能退出部分的Activity(如:小米note)四、RS优

如何退出当前所有activity,重新进入loginActivity界面

代码如下: Intent intent = new Intent(this, LoginActivity.class); ComponentName cn = intent.getComponent(); Intent mainIntent = IntentCompat.makeRestartActivityTask(cn);//ComponentInfo{包名+类名} start

[踏石留印之Android] 监听activity的状态(Create\Destroy)进行响应

最近在做串口数据处理时需要监听某activity的状态,以方便地打开关闭串口,而监听也非常简单,鉴于我项目中已有继承Application的BaseApplication类,用来设置全局变量和重复使用的方法,以及为我的第三方SDK进行初始化操作。BaseApplication: 要继承Application,使用方法是在AndroidManifest.xml中为加上BaseApplication所

相关热词 c#怎么获得线程名 c# usb 采集器 c# sort() c#面对对象的三大特性 c# 打印 等比缩放 c#弹出右键菜单 c# 系统托盘图标 c# 键值对 键可以重复 c# 鼠标移上去提示 c#结构体定义
立即提问