activity跳转(activity跳转到另一个activity)

更新时间:2023-03-01 08:17:18 阅读: 评论:0

Android基础知识:Activity(3)Activity之间的跳转

本文我们来学习Activity之间的跳转

主界面放一个Button,用于跳转,Second界面就放一个TextView

MainActivity.java

activity_main.xml

SecondActivity.java

activity_cond.xml

AndroidMainfest.xml

界面跳转主要是通过构建Intent,然后调用Activity的startActivity方法去启动

Intent接收两个参数,一个是Context,一个是需要跳转的Activity(Context有三种,分别是Application、Activity、Service,具体区别之后会发专门的文章来分析)

隐式启动也需要构建Intent,不过Intent传入的参数是一串字符,这串字符是由你自己定义的

我们先来修改AndroidManifest.xml

action自定义一个字符串,按自己喜欢的风格命名就行了
categroy也是由自己定义,但这里我们就用一个默认的字符串

接着修改MainActivity.java

注意这个Intent传入的参数要和之前定义的action一样

如果在AndroidManifest.xml中加了自己的category,那么就要这样写

我们在启动时要匹配所有的category才能启动

这时,你会发现我没有将android.intent.category.DEFAULT加进去

这是因为startActivity的时候,系统会自动自动帮我们加上

这个就是隐式启动。


安卓开发:如何得知当前activity是被压入后台,还是跳转到新的activity?

最近学习安卓开发activity的生命周期,对单个活动的生命周期较为熟悉。此时师兄抛出问题,当一个activity进入 onStop() 时,如何得知时由于用户点击了主页键,还是由于进入了另一个本程序的activity?

查阅网络资源后,得知可以通过安卓本身的多种方法来判断。不过某些方法的使用需要获取用户授权,或者需要较高版本的安卓系统。不过本文主要介绍通过activity本身的生命周期回调函数来判断。

由于设计两个activity的跳转,所以我们应该去考虑多个activity的生命周期回调函数顺序。查阅并测试可知,当进行activity跳转时,先执行原来activity的 onPau() 和,然后执行第二个activity的 onCreate() 、 onStart() 、 onResume() ,再执行第一个activity的 onStop 。如图所示,红色是第一个activity的回调函数执行,蓝色是第二个。

我们可以利用这个特点,通过一个static变量来记录当前run的activity数量,当这个数量为0的时候,即程序被压入后台,当这个数量不为0,则表明当前执行了一个跳转操作。

首先新建一个 BaActivity 类,声明一个static变量,让别的activity全部继承。并在 onStart() 和 onStop() 中修改 count 。

创建 MainActivity 类,继承自 BaActivity 类,同时修改 onStop() ,检查 count 的值,判断此次导致 onStop() 的原因。我在这个activity中添加了一个button用于跳转到第二个activity。

这个类很简单,没有什么功能,只是跳转过来后,执行基类的 onCreate() 方法。

至此,我们便实现了通过activity生命周期回调函数判断是否被压入后台。不过,后来学长针对我的这种方式提出了漏洞——当引用外部SDK,且外部SDK中可以弹出未继承我们自定义的ba基类的activity,那么怎么处理这种情况呢?这里就要用到安卓SDK提供的全局生命周期类了——Application.registerActivityLifecycleCallbaks,这里我们之后再谈。

跳转activity,或退出时会闪屏

WindowManager: Screenshot failure taking screenshot for (240x240) to layer 21010

I/WindowManager: Failed to capture screenshot of Token{efb2ca8 ActivityRecord{

解题思路:

1.这个问题一开始以为是堆栈的问题导致,所以各种启动模式尝试下来,丝毫没有改变闪屏的迹象。

2.查看activity的启动流程,总结下来,跟这一块也没关系。

3.最终通过查看log得知,截图失败,那为什么跳转actvity还要截图呢,哈哈,因为android 系统默认是有跳转动画的。So ,找到了原因,有两种解决方法,1,直接去掉跳转activity动画,2.修复截图失败的bug.

总结:解决问题要先从log入手。

Android 跳转至第三方应用指定的Activity

方法一:知道第三方应用的报名和需要跳转的Activity名
Intent redIntent=new Intent();
redIntent.tClassName("com.example.ht380d4G_jar_demo", "com.meter.MeterActivity");
方法二:不使用Activity名,用action
Intent redIntent=new Intent();
redIntent.tAction("com.jb.MeterActivity");
redIntent.addCategory("android.intent.category.DEFAULT");
redIntent.tPackage("com.example.ht380d4G_jar_demo");

Activity A 跳转Activity B,Activity B再按back键回退,两个过程各自的生命周期

ActivityB是个窗口Activity的情况下,1、2的结论呢?

若ActivityB是个窗口,ActivityA跳转到ActivityB时,ActivityA失去焦点部分可见,故不会调用onStop,此时生命周期顺序: A.onPau -> B.onCreate -> B.onStart-> B.onResume

按下Back键后:B.onPau->A.onResume->B.onStop->B.onDestory

切换横竖屏时,onCreate会调用吗?几次?

程序在运行时,一些设备的配置可能会改变,如:横竖屏的切换、键盘的可用性或语言的切换等,此时Activity会重新启动。其中的过程是:在销毁之前会先调用onSaveInstancestate()去保存应用中的一些数据,然后调用 onDestory(),最后才会去调用onCreate()或者onRestoreInstanceState方法重新启动Activiy。在切换屏幕时候会重新调用各个生命周期, 切横屏时会执行一次onCreate,切竖屏时会执行两次onCreate。

安卓应用开发中Activity之间怎么用按钮进行跳转?

activity的跳转一般有两种方式,一种是用action的隐式跳转,还有种就是用类名做的显式跳转。
对于初学者来说(比如我)还是比较喜欢用显式跳转,因为比较方便,也不用配置那么多的东西
Intent intent = new Intent(当前activity.this,要跳转到的activity.class);
startActivity(intent);
这样就能跳转过去了。
按钮的操作,就是给按钮做一个点击事件
btn.tOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

}
});
然后把跳转的那一条语句放到这里面
btn.tOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

Intent intent = new Intent(当前activity.this,要跳转到的activity.class);
startActivity(intent);
}
});
跳转就完成了。
关于隐式和显示跳转之间的关系还有方式可以到下面的链接去看看http://blog.sina.com.cn/s/blog_5d2e69770102v0ra.html

本文发布于:2023-02-28 19:43:00,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/167762983868874.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:activity跳转(activity跳转到另一个activity).doc

本文 PDF 下载地址:activity跳转(activity跳转到另一个activity).pdf

标签:跳转   跳转到   activity
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|