Android中跳转Activity有几种方法_java怎么跳转页面

Android中跳转Activity有几种方法_java怎么跳转页面FLAG_ACTIVITY_NEW_TASK标记了FLAG_ACTIVITY_NEW_TASK,就一定会创建一个新的TASK吗,实验证明这是一个必要条件,还要结合taskAffinity来看,A.如果和H5Activity具有相应的亲戚存在了,那么只是会把H5Activity加入的亲缘的TASK中B.如果和H5Activity没有对应的亲缘关系的TASK,那么就会创建一个新的TASK了p

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

知识储备参考地址:http://blog.csdn.net/ljz2009y/article/details/26621815 FLAG_ACTIVITY_NEW_TASK

标记了FLAG_ACTIVITY_NEW_TASK,就一定会创建一个新的TASK吗,实验证明这是一个必要条件,还要结合taskAffinity来看,
A .如果和H5Activity 具有相应的亲戚存在了,那么只是会把H5Activity 加入的亲缘的TASK中
B. 如果和H5Activity 没有对应的亲缘关系的TASK,那么就会创建一个新的TASK了

public static void startActivity(Context context, Bundle extras) { Intent intent = new Intent(context, H5Activity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (extras != null) intent.putExtras(extras); context.startActivity(intent);}

应用场景举例
会想一下,我们打开升级面板(和当前应用的TASK亲缘关系肯定不同)的时候是不是增加了一个FLAG_ACTIVITY_NEW_TASK,从而避免升级界面加入当前应用的TASK,
从而避免升级过程中应用推出导致升级面板也退出的情况

singleTask


这个属性其实被会系统当作FLAG_ACTIVITY_NEW_TASK 理解,这里我们把亲缘关系设置为其他APP的包名(一个APP的默认亲缘关系就是包名),
那么另外一个APP的在进程中是维持在首页的(other app HomeActivity),和SencondActivity 属于相同的TASK,返回或者 finish掉都是回到 
上一个界面(HomeActivity,当然前提是另外一个HomeActivity得在任务栈中)

    <activity
        android:name=".SenondActivity"
        android:launchMode="singleTask"
        android:taskAffinity="com.otherapp.package"
        >
    </activity>

public class SenondActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_senond);
        findViewById(R.id.testTv2).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                finish();
            }
        });
    }
}

关于空taskAffinity的测试结论:

taskAffinity如果为空,那么空taskAffinity之间的TASK没有亲缘关系,展示如下

Android中跳转Activity有几种方法_java怎么跳转页面

不为空有亲缘关系的展示如下


Android中跳转Activity有几种方法_java怎么跳转页面

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

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

(0)
上一篇 2026年4月16日 下午2:07
下一篇 2026年4月16日 下午2:13


相关推荐

  • fcntl使用

    fcntl使用功能描述 根据文件描述词来操作文件的特性 include includeintfc intfd intcmd intfcntl intfd intcmd longarg intfcntl intfd intcmd structflock lock 描述 fcntl 针对 文件 描述符提供控制 参数 fd

    2026年3月19日
    3
  • spring aop工作原理_注解的实现原理

    spring aop工作原理_注解的实现原理本篇旨在让读者对SpringAOP实现原理有一个宏观上的认识,因此会丢失一些细节,具体实现参考:老实人Spring源码目录阅读本篇文章前,希望读者对SpringIoc以及SpringAOP的使用(@Aspect)由一定了解,话不多说,直接上图准备工作Service类:有find方法跟save方法,find方法前后需要缓存操作,save方法前后需要事务操作CacheableAspec…

    2026年1月17日
    5
  • ubuntu彻底卸载docker_docker安装win10

    ubuntu彻底卸载docker_docker安装win10删除docker程序记事本新建脚本文件a.ps1,内容如下:$ErrorActionPreference=”SilentlyContinue”kill-force-processname’DockerforWindows’,com.docker.db,vpnkit,com.docker.proxy,com.docker.9pdb,moby-diag-dl,dockerd…

    2022年10月9日
    6
  • AOP实现原理详解[通俗易懂]

    AOP实现原理详解[通俗易懂]转载地址:https://my.oschina.net/elain/blog/382494一、什么是AOPAOP(Aspect-OrientedProgramming,面向切面编程),可以说是OOP(Object-OrientedPrograming,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入…

    2025年6月20日
    6
  • fcntl和select函数彻底搞明白

    fcntl和select函数彻底搞明白fcntl 和 select 函数彻底搞明白 nbsp 第一 fcntl 函数详细使用 nbsp nbsp nbsp nbsp nbsp nbsp fcntl 有强大的功能 它能够复制一个现有的描述符 获得 设置文件描述符标记 获得 设置文件状态标记 获得 设置异步 I O 所有权 获得 设置纪录锁 当多个用户共同使用 操作一个文件的情况 Linux 通常采用的方法就是给文件上锁 来避免共享资源产生竞争的状态 fcntl 文件锁有两种类型 建议性锁和强制

    2026年3月17日
    1
  • 25.3k Star 的 MiroFish:让 AI 智能体帮你预测万物

    25.3k Star 的 MiroFish:让 AI 智能体帮你预测万物

    2026年3月15日
    2

发表回复

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

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