Activity 方法:onCreate() 和 onDestroy()

2024-03-26

当第一次创建活动时,系统会调用OnContentChanged()方法作为系统的第一个方法和最后一个调用是OnDetachedFromWindow()方法当一个 Activity 被杀死时,但 android 文档说 Activity 的整个生命周期发生在OnCreate() and OnDestroy()。为什么?请帮助我理解这些方法之间的区别。

Code:

import android.app.Activity;
import android.content.res.Configuration;
import android.os.Bundle;
import android.widget.Toast;

public class ActivitylifecycleActivity extends Activity {
    /** Called when the activity is first created. */

    @Override
    public void onContentChanged() {
        super.onContentChanged();   
        Toast.makeText(getApplicationContext(),"1. onContentChanged()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Toast.makeText(getApplicationContext(),"2. onCreate()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onStart() {
        super.onStart();
        Toast.makeText(getApplicationContext(),"3. onStart()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onRestoreInstanceState(Bundle restoreInstanceState) {
        Toast.makeText(getApplicationContext(),"4. onRestoreinstaneState()", Toast.LENGTH_SHORT).show();
        super.onRestoreInstanceState(restoreInstanceState);
    }

    @Override
    public void onRestart() {
        super.onRestart();
        Toast.makeText(getApplicationContext(),"5. onRestart()", Toast.LENGTH_SHORT).show();
    }

    @Override
    protected void onPostCreate(Bundle onpostcrete) {
        super.onPostCreate(onpostcrete);
        Toast.makeText(getApplicationContext(),"6. onPostCreate()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onResume() {
        super.onResume();
        Toast.makeText(getApplicationContext(),"7. onResume()", Toast.LENGTH_SHORT).show();
    }

    @Override
    protected void onPostResume() {
        super.onPostResume();
        Toast.makeText(getApplicationContext(),"8. onPostResume()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onAttachedToWindow() {
        super.onAttachedToWindow();
        Toast.makeText(getApplicationContext(),"9. onAttachedToWindow()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onWindowFocusChanged(boolean bo) {
        super.onWindowFocusChanged(true);
        Toast.makeText(getApplicationContext(),"10. onWindowFocusChanged()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onUserLeaveHint() {
        super.onUserLeaveHint();
        Toast.makeText(getApplicationContext(),"11. onUserLeaveHint()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onUserInteraction() {
        super.onUserInteraction();
        ii=0;
        Toast.makeText(getApplicationContext(),"12. onUserInteraction()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onSaveInstanceState(Bundle savedInstanceState) {
        super.onSaveInstanceState(savedInstanceState);
        Toast.makeText(getApplicationContext(),"13. onSaveInstanceState()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onPause() {
        super.onPause();
        Toast.makeText(getApplicationContext(),"14. onPause()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onStop() {
        super.onStop();
        Toast.makeText(getApplicationContext(),"15. onStop()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        Toast.makeText(getApplicationContext(),"16. onDestroy()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onDetachedFromWindow() {
        super.onDetachedFromWindow();
        Toast.makeText(getApplicationContext(),"17. onDetachedFromWindow()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        Toast.makeText(getApplicationContext(),"18. onConfigurationChanged()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public boolean onSearchRequested() {
        super.onSearchRequested();
        Toast.makeText(getApplicationContext(),"19. onSearchRequested()", Toast.LENGTH_SHORT).show();
        return false;
    }
}

在这段代码中,onContentChanged()之前被调用onCreate()方法和onDetachedFromWindow()之后被调用onDestroy(). Why?


onCreate():

当一个活动开始它的生命时onCreate()叫做。它在活动的生命周期中仅被调用一次。

onDestroy():

onDestroy()当活动完成其生命周期时调用。它也在活动的生命周期中被调用一次。

onContentChanged():

每当屏幕的内容视图发生变化时(由于调用Window.setContentView or Window.addContentView)。例如,您向活动添加新视图或想要通过调用刷新列表notifyDataSetChanged().

onDetachedFromWindow():

当与该活动关联的主窗口已与窗口管理器分离时调用。例如,当当前 Activity 进入后台或另一个 Activity 出现在当前 Activity 前面时,就会调用它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Activity 方法:onCreate() 和 onDestroy() 的相关文章

  • RxAndroid - 单击时重试可观察

    我在 Android 应用程序中使用 rxAndroid 和 rxKotlin 来异步处理网络请求 现在我想仅在单击 Snackbar 按钮后重试失败的网络请求 我现在的代码 val citiesService ApiFactory cit
  • 我是否需要在我的 Firebase 项目中添加 SHA-1 指纹?

    在 Firebase 上有一个弹出窗口 显示我的项目可以添加指纹 SHA1 因为我只想使用一些 Firebase 服务 例如实时数据库 身份验证 我需要在我的项目中添加指纹吗 该图显示 仅在使用某些 Google Play 服务 如 OAu
  • 在android中的操作栏中标题左侧添加图标

    我想在操作栏中标题的左侧添加一个可点击的图标 按钮 怎么做 以下是我向操作栏添加搜索和设置图标的代码 它们出现在右侧 但我想在标题左侧添加一个新图标 怎么做 XML menu menu
  • HttpURLConnection getResponseCode 未返回

    我尝试在 Android 上使用 HttpURLConnection 将文件发布到我们的服务器 但 getResponseCode 调用只是挂起并且永远不会返回 该问题源于文件对于服务器来说太大 因此服务器发回 HTTP 错误代码 413
  • 如何在android中直接从.zip文件读取文件而不解压它

    过去几个月我一直在研究 android 现在我的问题是读取放在 sdcard 上的 zip 文件 我已经成功完成了将 zip 文件下载到 SD 卡上的编码 我已将 img zip 文件下载到 SD 卡上 此 img zip 包含 5 个图像
  • 从 Kotlin 中的字符串中删除字符

    我正在尝试创建一个使用 Kotlin 中的字符串的 Android 计算器 如果逗号 或负数 已经包含一个 我不知道如何删除它 这是我的代码 它正确添加逗号 但如果用户再次单击则不会删除它 if buClickValue contains
  • 我如何将值从基本适配器传递到活动

    我正在一个应用程序中工作 我需要将值从基本适配器类传递到活动 这是片段代码 public View getView int position View convertView ViewGroup parent vi convertView
  • ListView.hasWindowFocus==true 但子视图 hasWindowFocus==false

    有时我注意到 对于 View v v hasWindowFocus false View v getParent hasWindowFocus true 如果我正确理解文档 情况就不应该如此 v getParent 是 ListView 的
  • ListView 中的焦点控件

    上下文 我想要一个不会获得焦点的 ListView 例如不会 当用户触摸它时突出显示该行 然而每个行小部件都有它自己的 OnClickListener 这是我在布局 xml 中指定的内容 android choiceMode none an
  • WebView ssl 错误

    对不起我的英语不好 我需要加载 url https 我有一些问题 当我尝试加载页面时 webView 给我错误 primary error 3 certificate Issued to CN my site com Issued by C
  • Android:实现使用内置电话堆栈的自定义 ConnectionService

    我正在尝试在我的自定义电话应用程序中实现自定义 ConnectionService 根据文档 http developer android com reference android telecom ConnectionService ht
  • 如何通过代码改变Android SlidingDrawer的方向?

    当我从横向模式更改为纵向模式时 我无法找到设置 SlidingDrawer 方向的方法 反之亦然 最初我将 xml 的方向设置为垂直 当手机处于横向模式时 我需要将方向更改为水平 因此我将手柄放在左侧 有人有什么想法吗 我认为按照标准这是不
  • 在基本模块中找不到动态功能模块中的 Android 提供程序

    我在动态功能模块中使用了一些库 这些库正在将一些提供程序添加到清单中 例如在我的动态模块中的 build gradle 文件中 dependencies implementation com github esafirm android i
  • 如何从 Java 类调用 Kotlin 类

    我需要将意图从 java 活动传递到 Kotlin 活动 Java活动ProfileActivity class Intent selectGameIntent new Intent ProfileActivity this kotlin
  • android拦截最近的应用程序按钮

    我有一个针对儿童的应用程序 我不希望他们能够单击 最近使用的应用程序 按钮 看起来像两个矩形叠在一起的按钮 我正在负责捕获后退按钮和主页按钮 并且我已经搜索并阅读了很多有关尝试捕获 最近的应用程序 按钮的信息 但大多数人说你不能 或者他们的
  • 为什么 LayoutInflater 忽略我指定的layout_width 和layout_height 布局参数?

    我在让 LayoutInflater 按预期工作时遇到了严重的困难 其他人也是如此 如何使用layoutinflator在运行时添加视图 https stackoverflow com questions 4735847 help for
  • 为什么Android和IOS11无法通过NFC通信

    目前正在使用 React Native 并尝试使用反应本机 NFC ios https www npmjs com package react native nfc ios and 反应本机 NFC https github com Nov
  • 使用 jenkins.Creating .apk 文件生成 android 版本

    我正在使用 Jenkins 在 mac 上持续集成 android 应用程序 但是我无法使用 Jenkins 生成 apk 文件 就像我们在 iOS 应用程序中创建 ipa 一样 创建用于在 mac 上分发的 apk 文件的配置是什么 您可
  • 使用 libgdx 裁剪图像

    I need to crop image like this 我需要从中心绘制部分图像 我知道有一个带有很多参数的批处理的draw 方法 但是没有关于所有这些参数的良好文档 所以我不知道如何使用它 这是我实现的 public class T
  • smoothScrollToPosition() 在 Android ICS 中只能滚动到一半?

    在 Gingerbread 中 我使用 smoothScrollToPosition 一次滚动数十个项目没有任何问题 在我的 Nexus S 升级到 Ice Cream Sandwich 后 我注意到无论我在 smoothScrollToP

随机推荐

  • CSS:将父级更改为子级的焦点

    假设你有类似的东西 div class parent div
  • 确定任务是否在外部 build.gradle 文件中定义

    我有一个在运行时创建的 gradle 任务 用于调用另一个任务 myOtherTask 该任务位于单独的 gradle 文件中 问题是如果其他任务不存在 则会抛出异常 在尝试调用任务之前 是否可以检查外部 gradle 文件中是否存在该任务
  • Youtube API:评论插入403禁止权限不足

    我正在使用底部的 API 资源管理器https developers google com youtube v3 docs commentThreads insert https developers google com youtube
  • React-native视图按内部文本自动调整宽度

    据我所知 react native 样式表不支持 min width max width 属性 我里面有一个视图和文本 自动宽度的视图不会通过继承文本元素调整大小 如何解决该问题并使用文本宽度自动设置视图宽度 我的代码是
  • 如何将多个 SHA1 指纹添加到我的 Android 应用程序中进行测试?

    我的 Android 应用程序已经在 Google 开发者控制台上有另一个开发者不久前生成的 SHA1 指纹 现在 我正在应用程序中调试 Google 登录错误 结果发现 Google 登录使用在中找到的默认 SHA 1 android d
  • iTunesConnect - 自动下载应用程序的使用情况分析

    iTunes 连接 https itunesconnect apple com的应用程序分析页面有两个部分 销售和使用情况 对于第一部分 他们有自动摄取工具 https www apple com itunesnews docs AppSt
  • 在 Swift 3 中使用 -observeValueForKeyPath:ofObject:change:context:

    我正在尝试将 Swift 2 2 项目转换为 Swift 3 但收到以下错误 Method observeValue forKeyPath ofObject change context with Objective C selector
  • 将人类友好的日期转换为毫秒[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何将人类友好的日期转换为自 UNI
  • 如何在 Linux 中获取“文件创建时间”

    我需要找出在 Linux 中使用 C 创建文件的时间和日期 如何获取文件的最后修改日期 http www jb man ac uk slowe cpp lastmod html struct stat attrib 1 create a f
  • 在特定时间过后自动更改 WooCommerce 订单状态?

    有没有办法让 WooCommerce 在经过这么长时间后自动将自定义订单状态更改为不同的自定义订单状态 基本上 我希望所有订单状态更改为 退款已提交 的订单在 30 天后自动更改为 退款已过期 我意识到这些不是正常的 WooCommerce
  • Google OAuth 访问令牌

    我对 OAuth 和 Google 感到很困惑 我花了很长时间才获得刷新令牌来创建新的访问令牌 然后发现refresh token也过期了 这有什么意义啊 我需要做的就是保留一个有效的 access token 以供使用legato htt
  • 如何在 WebView 中加载 HTML 页面时显示进度对话框

    我正在使用 Web 视图来显示 html 页面 并且我想在页面加载之前显示一个进度对话框 完成后 对话框必须消失 我为此使用了 AsyncTask 但对话框不显示 请参阅下面的我的代码 class DownloadAysnc extends
  • 异步调用完成后渲染 React 函数组件的一部分

    我将 Material ui 与 React 函数组件一起使用 并使用其自动完成组件 我自定义了它 每当我更改输入字段中的文本时 我希望该组件呈现新的搜索结果 callAPI xyz 我在操作中调用 API 并使用 xyz 参数 从该函数组
  • 不同的构建操作在 csproj 中有何作用? IE。附加文件或假货

    不同的构建操作在 Web API 项目中起什么作用 也可能适用于其他类型 我看到 无 编译 内容 嵌入式资源 AdditionalFiles CodeAnalysisDictionary ApplicationDefinition 页面 资
  • Windows 10 上的 npx 和 nvm 导致需要安装以下软件包

    我已经安装了用于 Windows 的 nvm https github com coreybutler nvm windows和 nvm 列表显示 17 2 0 16 13 1 Currently using 64 bit executab
  • 如何在 SwiftUI 中使用 DatePicker 创建提醒

    我要显示DatePicker在警报视图或操作表视图中 但我找不到任何资源来执行此操作 我想要以下视图 谢谢您的帮助 你想要的实际上是被苹果劝阻的 根据这个答案 https stackoverflow com a 26342100 86977
  • 图标不是 3.00 格式

    在 Visual Studio 2008 中构建 C 应用程序时 我收到以下错误 iconfile ico 不是 3 00 格式 我使用 Paint 创建了图标文件 并将其保存为 ico 文件 我尝试将其保存为 16 位 24 位和 256
  • 仅匹配括号内字符的模式

    我在这里查看了很多关于 SO 的帖子 其中包含有关 REGEX 模式的建议 以从括号中获取文本 但是 根据我的研究 我找不到有效的解决方案 例如 我查看了以下内容 R 正则表达式提取包含关键字的括号之间的文本 https stackover
  • PHP性能考虑?

    我正在建造一个PHP网站 但目前唯一PHP我在某些页面上使用的是六个左右的包含内容 我最终可能会使用一些数据库查询 很简单include 声明关注速度或扩展 而不是静态HTML 什么样的事情容易导致网站陷入困境 当然 include 比静态
  • Activity 方法:onCreate() 和 onDestroy()

    当第一次创建活动时 系统会调用OnContentChanged 方法作为系统的第一个方法和最后一个调用是OnDetachedFromWindow 方法当一个 Activity 被杀死时 但 android 文档说 Activity 的整个生