快捷搜索:

你不知道的Activity- 使用详解

本篇文章主要先容 Android 开拓中的部分常识点,经由过程涉猎本篇文章,您将劳绩以下内容:

Activity 生命周期 简介

Activity 必须在AndroidMainfest.xml 中注册

启动Activity 的措施

启动带返回值的Activity

Activity停止 措施

Activity状态保存,规复的措施

口试中常常问到的例子

Activity是Android最基础的四大年夜组件之一(Activity 活动,Service 办事,ContentProvider 内容供给者,BroadcastReceiver 广播),Activity主要认真与用户进行交互,是每位Android 开拓必须掌握的常识点。

1. Activity 生命周期 简介

首先我们必要懂得一下Activity的承袭关系。

Activity 承袭关系

Activity 承袭关系如下:

java.lang.Object

↳android.content.Context

↳android.content.ContextWrapper

↳android.view.ContextThemeWrapper

↳android.app.Activity

理解完Activity的承袭关系后,我们开始懂得Activity的声明周期,Activity的生命周期直接影响到与用户的交互,此声明周期很紧张。

Activity 生命周期

Activity 生命周期图如下:

在代码中 Activity生命周期回调措施

Activity生命周期回调措施如下:

// Activity 创建措施

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Log.i(TAG, "----onCreate----");

setContentView(R.layout.activity_methods);

}

// Activity 在最新义务列表中打开时刻会走此措施

@Override

protected void onRestart() {

super.onRestart();

Log.i(TAG, "----onRestart----");

}

// Activity 在onCreate 或者 onRestart之后履行

@Overrideprotected void onStart() {

super.onStart();

Log.i(TAG, "----onStart----");

}

// 正在与用户交互的界面

@Override

protected void onResume() {

super.onResume();

Log.i(TAG, "----onResume----");

}

// 被其他与用户交互的Activity 部分覆盖

@Override

protected void onPause() {

super.onPause();

Log.i(TAG, "----onPause----");

}

// 被其它与用户交互的Activity 整个覆盖

@Override

protected void onStop() {

super.onStop();

Log.i(TAG, "----onStop----");

}

// Activity 销毁时刻调用此措施

@Override

protected void onDestroy() {

super.onDestroy();

Log.i(TAG, "----onDestroy----");

}

Activity 4 种 生命周期状态

Activity常见的四种生命周期状态如下:

Active 运行状态

Pause 停息状态

Stop 竣事状态

Killed 殒命状态

2. Activity 必须在 AndroidMainfest.xml 中注册

Activity是四大年夜组件之一,Android规定四大年夜组件必须在AndroidMainfest.xml 中注册,Activity假如不注册,则会引起 App Crash 报错。

ActivityNotFoundException

如Activity不在AndroidMainfest.xml中注册,则app将会报错,报错主要非常信息如下 :

ActivityNotFoundException

例如以下报错信息:

//提示未在 AndroidMainfest.xml 中找到Activity类的声明

android.content.ActivityNotFoundException:Unable to find explicit activity class

//详细类名,包名如下:

{com.wj.utils/com.wj.utils.basewidget.BaseButtonMethods};

//必要在AndroidManifest 中声明

have you declared this activity in your AndroidManifest.xml?

Activity 注册措施如下:

腾讯@Android高档架构

加群 腾讯@Android高档架构领取获取往期Android高档架构资料、源码、条记、视频。高档UI、机能优化、架构师课程、NDK、混杂式开拓(ReactNative+Weex)微信小法度榜样、Flutter全方面的Android进阶实践技巧,群内还有技巧大年夜牛一路评论争论交流办理问题。

您可能还会对下面的文章感兴趣: