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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Spring Cloud的架构[通俗易懂]

    Spring Cloud的架构[通俗易懂]SpringCloud架构图Eureka用于服务注册和发现,利用了客户端的服务发现,所以它内部需要Ribbon作为客户端负载均衡。Hystrix,客户端容错保护,服务熔断、请求缓存、请求合并、依赖隔离。Feign,声明式服务调用。Bus,消息总线,配合Config仓库修改的一种Stream实现,Dashboard,Hystrix仪表盘,监控集群模式和单点模式,其中集群模式…

    2022年5月13日
    36
  • 芯片设计之流水线设计-IC学习笔记(四)

    芯片设计之流水线设计-IC学习笔记(四)pipeline流水线设计是一种典型的面积换性能的设计。一方面通过对长功能路径的合理划分,在同一时间内同时并行多个该功能请求,大大提高了某个功能的吞吐率;另一方面由于长功能路径被切割成短路径,可以达到更高的工作频率,如果不需要提高工作频率,多出来的提频空间可以用于降压降功耗。

    2022年8月14日
    39
  • 【Android】实现登录、注册、数据库操作(极简洁)[通俗易懂]

    我最近又写了一篇文,是这篇文章的升级版,借此文引流一下:《【Android】实现登录、注册、数据库操作(极复杂)》本篇源码地址(进去找JustLoginRegister):(2019-12-05更新:我已经把Gradle更新到3.5最新版了,dependencies也已经都迁移到androidx了,特此说明)https://github.com/littlecurl/AppProj…

    2022年4月17日
    227
  • Stream和parallelStream

    Stream和parallelStreamStream和parallelStreamParallelStreamstreamparallelstreamstream和parallelStream一.什么是Stream?Stream是在Java8新增的特性,普遍称其为流;它不是数据结构也不存放任何数据,其主要用于集合的逻辑处理。二.和Iterator的区别Iterator做为迭代器,其按照一定的顺序迭代遍历集合中的每一个元素,并且对每个元素进行指定的操作。

    2022年7月19日
    15
  • Ansible-playbook_黑莓playbook刷中文教程

    Ansible-playbook_黑莓playbook刷中文教程Ansible入门与playbook实战

    2022年4月21日
    141
  • vscode支持java_vscode配置go环境

    vscode支持java_vscode配置go环境VScode配置Java环境1.下载JDK方式一:手动下载JDKOracleJavaSEAdoptOpenJdkAzulZuluforAzure-EnterpriseEdition方式二:VSCode中下载JDK下载JAVA插件扩展方式一:windows平台下可以直接访问这个地址直接下载带有java插件的vscode方式二:在vscode中下载以下插件LanguageSupportforJavabyRedHatDebug

    2022年9月1日
    0

发表回复

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

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