//设置布局
setContentView(R.layout.activity_test);
}
}
=========================================================================
当Activity处于Android应用中运行时,它的活动状态有Android以Activity栈的形式管理,当前活动的Activity位于栈顶。随着不同应用的运行,每个Activity都有可能从活动状态转入非活动转态,也可能从非活动转态转入活动转态。
从左往右诠释了Activity从创建到运行再到销毁
-
在Activity的整个生命周期发生在第一次调用onCreate方法到最后一次调用onDestroy之间。一个Activity将在onCreate方法中完成所有“全局”状态的设置,并在onDestroy方法中释放所有剩余的资源。
-
在Activity的visible生命周期发生在onStart方法到onStop方法之间相应调用。这两种方法之间,可以维护向用户显示Activity所需的资源。
-
Activity的foreground生命周期发生在onResume方法和onPause方法之间。Activity通常在这两个方法可以在恢复状态和暂停状态之间进行切换。
-
onCreate(Bundle saveStatus):创建Activity时被回调。该方法只会被调用一次。
-
onStart():启动Activity时被回调
-
onRestart():重新启动Activity时被回调。在onStart()方法后一定会回调onResume()方法。
-
onPause():暂停Activity时回调
-
onStop():停止Activity时回调
-
onDestory():销毁Activity时被回调。该方法只会被调用一次
public class ActivityTest extends AppCompatActivity {
//创建Activity
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
System.out.println(“onCreate”);
}
@Override
protected void onStart() {
super.onStart();
System.out.println(“onStart”);
}
@Override
protected void onResume() {
super.onResume();
System.out.println(“onResume”);
}
@Override
protected void onPause() {
super.onPause();
System.out.println(“onPause”);
}
@Override
protected void onStop() {
super.onStop();
System.out.println(“onStop”);
}
@Override
protected void onRestart() {
super.onRestart();
System.out.println(“onRestart”);
}
@Override
protected void onDestroy() {
super.onDestroy();
System.out.println(“onDestroy”);
}
}
=============================================================================
通过Intent(意图)实现Activity的显式跳转和隐式跳转
1.1 显式跳转
显式跳转有四种格式
//显式跳转
Intent intent = new Intent(this, BActivity.class);
startActivity(intent);
//显示跳转
// Intent intent = new Intent();
// intent.setClass(this, BActivity.class);
// startActivity(intent);
//通过设置setClassName实现显式跳转,需要传入完整的Activity地址
// Intent intent = new Intent();
// intent.setClassName(this, “com.example.test.jump.BActivity”);
// startActivity(intent);
//通过设置Component实现显式跳转,需要传入完整的Activity地址
// Intent intent = new Intent();
// intent.setComponent(new ComponentName(this, “com.example.test.jump.BActivity”));
// startActivity(intent);
1.2 隐式跳转
1.2.1 隐式Intent图解
1.2.1 隐式Intent实现
在通过隐式调用时,需要在AndroidManifest中设置对应Activity的action
//隐式调用
Intent intent = new Intent();
intent.setAction(“com.example.test.jump.BActivity”);
startActivity(intent);
Activity之间数据的传递可以通过Intent中的putExtra方法传值
intent.putExtra(“szh”,1);
也可以通过实例化Bundle类,然后通过Bund的put方法设置自己想要的值,在通过putExtra方法传值
Bundle bundle = new Bundle();
bundle.putString(“name”,“szh”);
intent.putExtras(bundle);
=========================================================================
Activity有四种启动模式,在AndroidManifest中设置Activity的android:launchMode属性,设置Activity的启动模式。
android:launchMode属性:
-
standard:标准模式,默认
-
singleTop:Task栈顶复用模式
-
singleTask:Task栈内复用模式
-
singleInstance:全局单例模式
-
Activity是由任务栈管理的,每启动一个Activity,就会被放入栈中,按返回键,就会从栈顶移除一个Activity。
-
standard是默认的启动模式,即标准模式。没启动一个Activity,都会创建一个新的实例
<activity
android:name=“.jump.BActivity”
android:launchMode=“standard”>
- 当要启动的目标Activity已经位于栈顶时,不会创建新的实例,会复用栈顶的Activity,并且其onNewIntent方法会被调用;如果目标Activity不在栈顶,则跟standard一样创建新的实例。
<activity
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
最后
考虑到文章的篇幅问题,我把这些问题和答案以及我多年面试所遇到的问题和一些面试资料做成了PDF文档
喜欢的朋友可以关注、转发、点赞 感谢!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
源码讲义、实战项目、讲解视频,并且会持续更新!**
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
最后
考虑到文章的篇幅问题,我把这些问题和答案以及我多年面试所遇到的问题和一些面试资料做成了PDF文档
[外链图片转存中…(img-OJ5CcfzL-1712330429616)]
[外链图片转存中…(img-yhW9tG31-1712330429616)]
喜欢的朋友可以关注、转发、点赞 感谢!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!