`

android 清空之前task中的activity

阅读更多
开发过程有个场景:关闭之前所有activity,跳转到登录页

以前是activity都放到一个list里面,退出应用的时候遍历列表,逐个finish

换种实现方式

跳转登录页的intent添加两个flag 
Intent.FLAG_ACTIVITY_CLEAR_TASK

Intent.FLAG_ACTIVITY_NEW_TASK

	Intent intent = new Intent(this, TestCActivity.class);
		intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		startActivity(intent);




当然如果登录页的launchMode为singleTask的话,就不需要
Intent.FLAG_ACTIVITY_NEW_TASK

(要么在manifest文件中声明,要么在intent中添加flag,二者择一即可)

看下google文档
     * If set in an Intent passed to {@link Context#startActivity Context.startActivity()},
     * this flag will cause any existing task that would be associated with the
     * activity to be cleared before the activity is started.  That is, the activity
     * becomes the new root of an otherwise empty task, and any old activities
     * are finished.  This can only be used in conjunction with {@link #FLAG_ACTIVITY_NEW_TASK}.


cet-4的基本能看懂吧~

备注 api level 要大于 11
分享到:
评论

相关推荐

    Android 一次启动多个Activity (TaskStackBuilder)

    用户可以通过按设备上的返回键从栈顶Activity回退到栈中的前一个Activity,直到任务被清空或者用户手动关闭应用。 TaskStackBuilder是Android提供的一种工具类,用于帮助构建一个符合用户期望的回退栈。当用户点击...

    全面解析Android应用开发中Activity类的用法

    使用`Intent.putExtra()`方法添加数据到Intent,然后在目标Activity中通过`Intent.getXXXExtra()`方法获取数据。数据可以是基本类型、Parcelable对象或者Serializable对象。 - **通过静态变量传递**:虽然这种方法...

    Android应用源码之(Activity跳转与操作).zip

    6. **startActivity()和startActivityForResult()**:startActivity()用于无返回值的跳转,而startActivityForResult()则可以在调用者Activity中接收到被启动Activity的结果。 7. **finish()方法**:调用Activity的...

    Android学习笔记-Activity篇

    2. 启动带有返回结果的Activity:若需从目标Activity返回结果,可以在启动时添加`startActivityForResult()`,并在目标Activity中使用`setResult()`设置返回值,最后调用`finish()`结束Activity。 四、关闭Activity...

    android退出所有Activity并且不弹出对话框实现

    在Android中,每个应用程序都有一个任务(Task)栈,Activity按照启动顺序被压入栈中,最后启动的Activity位于栈顶。当用户按下Back键时,系统会从栈顶取出并销毁当前Activity,依次回退到前一个Activity。而要退出...

    Android activity属性设置大全.doc

    在Android开发中,Activity是应用的基本组件之一,它是用户界面的主要载体。Activity的属性设置对于应用的行为和用户体验至关重要。以下是对Android activity属性的详细解释: 1. android:allowTaskReparenting=[...

    Android模拟Activity进出栈.zip

    3. **任务栈(Task Stack)**:任务是Android系统中的一个概念,由一系列按照后进先出(LIFO)原则排列的Activity组成。当启动一个新的Activity时,如果没有指定任务属性,它会被添加到当前任务的栈顶。用户可以通过...

    Android的Activity的Launch模式之SingleTask案例

    如果找到,就会通过`onNewIntent()`方法传递新意图(Intent),并清空该栈中所有位于该Activity上方的Activity;如果没有找到,系统会在新的任务栈中创建该Activity。 3. **从其他应用启动**:当一个`SingleTask` ...

    模拟Activity进出栈

    Intent中可以设置Flag来控制Activity的启动行为,如FLAG_ACTIVITY_NEW_TASK和FLAG_ACTIVITY_CLEAR_TOP等,这些标志可以改变Activity的默认行为,比如清空栈顶直到指定的Activity,或者在新任务中启动Activity。...

    android activity研究

    - **android:clearTaskOnLaunch**:启动时清空整个 `Task` 栈。 - **android:configChanges**:指定 `Activity` 在配置改变时是否会被重建。 - **android:exported**:控制 `Activity` 是否可以被外部应用程序访问。...

    stack(栈)在android 中的运用

    当用户启动一个新Activity或通过Intent从一个Activity跳转到另一个Activity时,Android会自动将这些Activity压入默认的Task(任务)栈中。 - Task是Android操作系统中运行应用程序的抽象,它包含一组按特定顺序排列...

    singleTask和singleInstance的测试

    在Android应用开发中,Activity的启动模式(launchMode)是一个重要的概念,它决定了Activity如何被启动以及在任务栈(Task)中的行为。本测试主要关注两种特定的启动模式:singleTask和singleInstance,它们都是...

    android Intent.FLAG大全

    当Task被重置时,清空所有Activity,只保留根Activity。 16. **FLAG_ACTIVITY_NO_USER_ACTION** (API 29+) 防止启动Activity的用户操作被记录,如用于自动同步或后台更新。 了解和正确使用这些`Intent.FLAG`可以...

    Android 4.4.2 简单的人品测试

    然后在目标Activity中使用`getIntent().getStringExtra("key")`或`getIntent().getParcelableExtra("key")`来获取数据。 6. **finish()方法**:在Activity完成其任务后,可以调用`finish()`方法来关闭当前Activity...

    Android应用退出登录的实现方法

    当用户点击“退出登录”时,通常意味着要清空栈中的所有与登录状态相关的Activity,使应用回到未登录的状态。 传统的做法是逐个调用finish()方法来关闭当前及之前的所有Activity。但这种方法存在一个问题:如果...

    android Manifest.xml详解

    该属性用于控制当启动 Activity 时是否清空当前 Task 中的所有 Activity。如果设置为 `true`,则启动 Activity 时会清空整个 Task,只保留启动的 Activity;如果设置为 `false`(默认值),则 Task 中的其他 ...

    Android-Project-demo1.zip

    4. **Intent Flag**: Intent对象还可以设置各种标志,如FLAG_ACTIVITY_NEW_TASK或FLAG_ACTIVITY_CLEAR_TOP,来控制Activity启动的行为,比如是否创建新的任务栈或者清空栈顶的Activity。 5. **Activity之间的数据...

    android项目源码页面跳转

    可以使用`putExtra()`方法将数据(如字符串、整数、对象等)添加到Intent中,然后在目标Activity中通过`getIntent().getStringExtra()`, `getIntExtra()`等方法获取。 5. **Activity的生命周期**: 页面跳转涉及到...

Global site tag (gtag.js) - Google Analytics