activity启动FLAG之FLAG_ACTIVITY_CLEAR_TASK「建议收藏」

activity启动FLAG之FLAG_ACTIVITY_CLEAR_TASK「建议收藏」随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)官方文档解释:IfsetinanIntentpassedtoContext.startActivity(),thisflagwillcauseanyexistingtaskthat…

大家好,又见面了,我是你们的朋友全栈君。

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)

activity启动FLAG之FLAG_ACTIVITY_CLEAR_TASK「建议收藏」

官方文档解释:

If set in an Intent passed to 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 FLAG_ACTIVITY_NEW_TASK.

翻译:如果在通过Context.startActivity()启动activity时为Intent设置了此标识,这个标识将导致:在此activity启动之前,任何与此activity相关联的task都会被清除。也就是说,此

activity将变成一个空栈中新的最底端的activity,所有的旧activity都会被finish掉,这个标识仅仅和FLAG_ACTIVITY_NEW_TASK联合起来才能使用。

下面给一个例子,看看设置了此标识和不设置有什么区别:

MainActivity:

package com.hom.testflag;

import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.app.Activity;
import android.content.Intent;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		LinearLayout layout = new LinearLayout(this);
		Button btn = new Button(this);
		btn.setText("跳转到A");
		layout.addView(btn);
		setContentView(layout);
		btn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				Intent intent = new Intent(MainActivity.this, ActivityA.class);
				startActivity(intent);
			}
		});
	}

}

ActivityA:

package com.hom.testflag;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;

public class ActivityA extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		LinearLayout layout = new LinearLayout(this);
		Button btn = new Button(this);
		btn.setText("跳转到B");
		layout.addView(btn);
		setContentView(layout);

		btn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				Intent intent = new Intent(ActivityA.this, ActivityB.class);
				intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
				startActivity(intent);
			}
		});
	}
}

ActivityB:

package com.hom.testflag;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.LinearLayout;

public class ActivityB extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		LinearLayout layout = new LinearLayout(this);
		Button btn = new Button(this);
		btn.setText("ActivityB");
		layout.addView(btn);
		setContentView(layout);
	}
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160721.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • http与https的区别与联系_http状态码

    http与https的区别与联系_http状态码HTTP与HTTPS握手的那些事

    2022年10月2日
    4
  • Java—网络编程

    Java—网络编程1.网络编程的基本概念1.1网络的概念网络:一组相互连接的计算机,多台计算机组成,使用物理线路进行连接1.2网络连接的功能1.3网络编程的三要素1)IP地址:唯一标识网络上的每一台计算机,两台计算机之间通信的必备要素。2)端口号:计算机中应用的标号(代表一个应用程序),0-1024系统使用或保留端口,端口号占2个字节,所以有效端口0-65535.3)通信协议:通信的规则TCP,UDP4)注意:在通信协议相同的情况下,端口号才是唯一的。2.IP_端口_Scoket含义2.1IP地

    2022年7月8日
    23
  • 谷粒商城项目2——环境搭建、renren-generator逆向生成所有微服务基本CRUD代码[通俗易懂]

    谷粒商城项目2——环境搭建、renren-generator逆向生成所有微服务基本CRUD代码[通俗易懂]续接上文谷粒商城项目1——分布式基础概念、环境搭建_Kaisa..的博客-CSDN博客至此,环境搭建完成了,接下来就是分布式组件了目录二、环境搭建8.人人开源框架搭建(1).克隆项目初始环境(2).创建renren-fast后台管理系统数据库(3).配置renren-fast环境(4).前端环境搭建(5).测试登录9.renren-generator代码生成器(1).根据数据库逆向生成Bean、Mapper等(2).启动renren-generator(3).创建公共微服务模块导入逆向生成代码所需要的各种依

    2022年7月28日
    14
  • 大屏数据可视化案例「建议收藏」

    大屏数据可视化案例「建议收藏」数据可视化:把相对复杂的、抽象的数据通过可视的、交互的方式进行展示,从而形象直观地表达数据蕴含的信息和规律。数据可视化是数据空间到图形空间的映射,是抽象数据的具象表达。数据可视化交互的基本原则:总览为先,缩放过滤按需查看细节。大屏数据可视化是当前可视化领域的一项热门应用,通常可以分为信息展示类、数据分析类及监控预警类。大屏数据可视化应用的难点并不在于图表类型的多样化,而在于如何能在…

    2022年6月27日
    35
  • 缓冲流、转换流、序列化流、Files

    缓冲流、转换流、序列化流、Files

    2021年5月19日
    128
  • ANSYS ICEM CFD 网格划分步骤简要总结[通俗易懂]

    ANSYS ICEM CFD 网格划分步骤简要总结[通俗易懂]

    2022年5月9日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号