iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >Android中怎么关闭多个Activity
  • 349
分享到

Android中怎么关闭多个Activity

androidactivity 2023-05-30 20:05:39 349人浏览 独家记忆
摘要

Android中怎么关闭多个Activity,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、使用Application来进行关闭public class&nbs

Android中怎么关闭多个Activity,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

1、使用Application来进行关闭

public class App extends Application {   private static List<Activity> lists = new ArrayList<>();   public static void addActivity(Activity activity) {     lists.add(activity);   }   public static void clearActivity() {     if (lists != null) {       for (Activity activity : lists) {         activity.finish();       }       lists.clear();     }   } } //然后写一个基类Activity,在构造构造方法调用App.addActivity(this);就可以实现。

2、使用广播的方式来进行关闭

在基类构造方法中实现注册广播,onDestroy方法取消注册

public class BaseActivity extends AppCompatActivity {   @Override   protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     IntentFilter intentFilter = new IntentFilter();     intentFilter.addAction(getString(R.string.promotion_action));     reGISterReceiver(receiver, intentFilter);   }   BroadcastReceiver receiver = new BroadcastReceiver() {     @Override     public void onReceive(Context context, Intent intent) {       finish();     }   };   @Override   protected void onDestroy() {     super.onDestroy();     unregisterReceiver(receiver);   } }

接下来只需要你在想要关闭所有Activity的界面调用

//销毁所有的Activity //关闭本窗口getActivity().finish();//关闭父窗口if(getActivity().getParent()!= null){  getActivity().getParent().finish();}//关闭列表页面Intent intent = new Intent();intent.setAction(getString(R.string.promotion_action));getActivity().sendBroadcast(intent);

3、使用onActivityResult递归回调的方式关闭

1)在基类Activity重写onActivityResult方法通过识别ResultCode来调用finish方法

2)接下来只需要在你想要关闭Activity调用setResult(Result_CLOSE)就可以了

public class BaseActivity extends AppCompatActivity {   protected final static int RESULT_CLOSE = 0;   @Override   protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);   }   @Override   protected void onActivityResult(int requestCode, int resultCode, Intent data) {     super.onActivityResult(requestCode, resultCode, data);     if(resultCode == RESULT_CLOSE){       setResult(RESULT_CLOSE);       finish();     }   } }

4.使用setFalgs的方式来关闭

首先先来介绍一个LaunchMode四种模式:

LaunchMode

1)standard和singleTop是相同的,每次都会创建一个新的Activity实例,区别是singleTop当压入栈的Activity与任务栈的栈顶Activit相同则不会创建实例(会调用onNewIntent方法)

2)singleInstance和singleTask是相同的,都会保证任务中没有相同的任务,(当执行的Activity与任务中某个Activity相同则会调用onNewIntent方法),不同点是(singleInstance每次都会创建一个任务栈并将Activity压入栈中),(singleTask是在一个任务栈中,如果压入栈的Activity与栈内Activity某个相同则直接将那个Activity移动到栈顶不会创建新的实例)

当然这里并没有用到这四种模式而是运用的是Intent.FLAG_ACTIVITY_CLEAR_TOP,这种标示基本和singleTop类似不同的是如果压入栈的Activity在栈内某个Activity相同则将它上面的所有Activity进行出栈操作。

在每次跳转都加上

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

所以在最后一个Activity后退应用:

@Override public boolean onKeyDown(int keyCode, KeyEvent event) {   if (keyCode == KeyEvent.KEYCODE_BACK) {     //销毁所有的Activity     Intent intent = new Intent(this,FirstActivity.class);     intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);     startActivity(intent);   }   return super.onKeyDown(keyCode, event); }

这样略先复杂,现在来说一下使用flag的另一种方法:

在退出的Activity的前一个Activity跳转加上

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_TASK_ON_HOME);

就可以了,现在来说一下这几个什么意思

关于Android中怎么关闭多个Activity问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: Android中怎么关闭多个Activity

本文链接: https://www.lsjlt.com/news/220954.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android中怎么关闭多个Activity
    Android中怎么关闭多个Activity,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、使用Application来进行关闭public class&nbs...
    99+
    2023-05-30
    android activity
  • Android 侧滑关闭Activity的实例
    Android 侧滑关闭Activity的实例实现原因其实侧滑关闭activity在网上也有大量的文章去介绍他,我也有去看,要么是代码实在太多看不下去,要么就是跑了项目没有反应的。唯一的方法还是自己随手鲁一个~,侧滑这个东西在Android...
    99+
    2023-05-30
    android 侧滑关闭 roi
  • 如何在Android中关闭Activity的滑动效果
    这篇文章将为大家详细讲解有关如何在Android中关闭Activity的滑动效果,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.第一个Activity:package com.ekegua...
    99+
    2023-05-31
    android activity roi
  • 【Android】怎么使用一个ViewModel用在多个Activity或者Fragment中
    项目需求 在多个Activity或者Fragment中使用同一个ViewModel 需求实现 1.使用ActivityScope或FragmentScope 想在一个Activity或Fragment中共享ViewModel实例,可以使用A...
    99+
    2023-08-18
    android
  • android的activity怎么跳转到另一个activity
    在Android中,要从一个Activity跳转到另一个Activity,可以使用Intent和startActivity方法。下面...
    99+
    2023-08-17
    android activity
  • Android中Activity Result API怎么用
    小编给大家分享一下Android中Activity Result API怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!如果你将项目中的appcompat库升级到1.3.0或更高的版本,你会发现st...
    99+
    2023-06-29
  • Android怎么创建一个activity抽象类
    要创建一个抽象类的Activity,你可以按照以下步骤操作: 创建一个Java类,并在类的声明语句前添加"abstract"关键...
    99+
    2023-10-22
    Android activity
  • Android中Activity组件怎么使用
    今天小编给大家分享一下Android中Activity组件怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Activi...
    99+
    2023-06-26
  • 怎么在Android中利用Activity实现一个监听器
    怎么在Android中利用Activity实现一个监听器?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Activity在Activity中,使用findViewById(int...
    99+
    2023-06-14
  • Android开发中怎么启动另一个应用中的Activity
    这篇文章将为大家详细讲解有关Android开发中怎么启动另一个应用中的Activity,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Android 启动另一个App/apk中的Activit...
    99+
    2023-05-31
    android roi activity
  • 关闭 Android 中的 SELinux
    关闭 Android 中的 SELinux SELinux(Security-Enhanced Linux)是一种安全性增强的 Linux 内核安全模块,用于提供强制访问控制(MAC)机制。它在 An...
    99+
    2023-10-25
    android Android
  • Android中Activity有什么用
    小编给大家分享一下Android中Activity有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!理论概述Activity的理解Activity的定义Act...
    99+
    2023-06-22
  • 怎么在Android中实现一个滑动退出Activity功能
    怎么在Android中实现一个滑动退出Activity功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。实现Android 滑动退出Activity的功能and...
    99+
    2023-05-30
    android activity roi
  • Android Handler的postDelayed()怎么关闭
    这篇文章主要介绍Android Handler的postDelayed()怎么关闭,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Android是什么Android是一种基于Linux内核的自由及开放源代码的操作系统,...
    99+
    2023-06-14
  • Android怎么关闭别的线程
    要关闭一个线程,可以使用以下方法之一:1. 使用标志位:在需要关闭的线程中定义一个布尔型的标志位,当标志位为true时,线程执行结束...
    99+
    2023-09-12
    Android
  • android怎么创建新的activity
    要创建一个新的Activity,你需要按照以下步骤进行操作:1. 在Android Studio中打开你的项目。2. 在项目的"ja...
    99+
    2023-08-18
    android activity
  • Android中怎么实现Activity 间的传值
    今天就跟大家聊聊有关Android中怎么实现Activity 间的传值,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Android 中两个Activity 之间的传值问题在Andro...
    99+
    2023-05-30
    android activity
  • Android开发中怎么实现Activity切换
    今天就跟大家聊聊有关Android开发中怎么实现Activity切换,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。具体如下:这里要实现的目的是:有3个Activity: A,B,C,...
    99+
    2023-05-31
    android activity roi
  • android怎么调用activity方法
    要调用一个Activity的方法,首先需要获取Activity的实例,然后通过该实例来调用方法。以下是一种常用的方法调用方式:1. ...
    99+
    2023-09-16
    activity android
  • Android 中怎么实现Activity 间传递参数
    这篇文章将为大家详细讲解有关Android 中怎么实现Activity 间传递参数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.传递简单数据在A Activity中findViewByI...
    99+
    2023-05-30
    android activity
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作