- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想讨论 Android 生命周期。我了解 Android 生命周期工作原理的基础知识,但我想问一些问题。
为什么 Android 应用程序不直接从运行状态移动到停止状态,为什么它首先要经过暂停阶段?
为什么 Android 应用程序不像 iPhone 应用程序那样直接从 Running 移动到 Destroy?为什么它从 Pause->Stopped->Destroy 移动为什么不是 Running->Destroy ?
最佳答案
主要出于性能原因,应用不会立即销毁。来自Android Developer Activity Reference :
The Android system attempts to keep application process around for as long as possible, but eventually will need to remove old processes when memory runs low.
例如,如果屏幕仍处于打开状态并且您的设备没有释放内存的迫切需要,那么如果只是暂停 Activity 而不是完全销毁 Activity 显然对用户来说会更快。多个最终生命周期阶段使这成为可能。
各种回调表示不同的事情。这允许您将清理功能分为快速、关键的项目(断开与数据库或网络连接等系统资源的连接)和长期任务(例如,在应用程序启动期间保留用户数据)。因为您的 Activity 会尽可能长时间地保留,所以您可以避免在用户只是暂时暂停 Activity 时进行昂贵的操作。
onPause()
是第一个回调,表明您的 Activity 不再处于前台。例如,如果出现对话框或用户按下主页按钮,应用程序将暂停。例如,如果应用因对话而暂停,您不希望它被销毁,因为它仍然可见。
如果您还收到 onStop()
,则表明您的 Activity 不再可见。此时用户不再看到您正在显示的内容。例如,这可能意味着用户打开了另一个应用程序。然而,即使在这一点上,系统仍可能保留您的 Activity ,以便用户稍后可以更快地返回到它。 (但是,如果您/用户结束了 Activity,那么它不会被保留,而是会继续进行结束生命周期回调。)
onDestroy()
是 Activity 被销毁前的最后一个回调。请注意,在极端情况下,系统可能会在不调用此方法的情况下销毁您的 Activity。
关于安卓生命周期 : Explanation for state transitions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12488629/
我正在查看 java 代码片段,而这个片段我无法弄清楚为什么输出是 2? package com.instanceofjava; public class A{ stat
我有这种情况: 我试图以这种方式混淆一些数据 /* item.h */ typedef struct ItemStruct *Item; /*item.c*/ #include "item.h" st
好的,我今天遇到了这个,当时 TI TMS470 C++ 编译器拒绝接受它。 这来自“Head First Design Patterns”示例代码的 C++ 翻译的 Silver 版本。 class
我正在使用 requests 模块和 Python 2.7 构建一个基本的网络爬虫。 source_code = requests.get(url) plain_text = source_code.
union([H|T],[],[H|T]). union([],[H|T],[H|T]). union([H|T], SET2, RESULT) :- member(H,SET2), u
我正在使用 requests 模块和 Python 2.7 构建一个基本的网络爬虫。 source_code = requests.get(url) plain_text = source_code.
我想要解释 GCC 生成的程序集中与 .cfi_def_cfa_offset 指令一起使用的值。我隐约知道 .cfi 指令涉及调用帧和堆栈展开,但我想更详细地解释为什么,例如,在编译以下 C 程序时
如果我反汇编我的类文件,我会得到以下形式的 LineNumberTables LineNumberTable: line 204: 0 line 205: 9 line 2
我使用 jQuery 编码已有大约 2 年了,但我从未在插件中完成过。我正在努力改变这一点。我找到了一些解释如何创建插件的网站,我了解了基础知识。 我不明白的部分是 this 关键字的使用。这是一个简
我正在开发一个 OpenGL 项目,我需要对该主题的核心组件进行一些简短的解释,因为我需要向有需要的人解释。 以下是程序部分 下面是程序中用到的全局变量和头文件 #include #include #
我正在阅读 this不错的文章,但坚持一句话以对此有更多了解。 这是什么意思(在第 8 点中提到)“允许应用程序线程与 GC 线程一起运行总是会导致应用程序线程以影响对象 Activity 性的方式改
我是 java 泛型的新手,我的问题是: public static void printArray( E[] inputArray ) 在上面的语句中,当函数的返回类型为void时,为什么我们在v
我目前正在浏览一些旧的大学 C++ 代码片段。那时,另一个类(class)中的一个被分配使用双指针和二维数组来做一个矩阵类(class)。幸运的是(或者事后看来不幸)我从来没有机会学习那样的东西。我毕
在另一个SO post ,以下示例作为对 OP 的响应给出: public static void funct1(final List list1, final E something) {
谁能告诉我为什么在运行程序时下一行显示 5 CURRENT THREAD IS: Thread[main,5,main] 该程序来自 Java Complete Reference 一书,程序如下:
我想讨论 Android 生命周期。我了解 Android 生命周期工作原理的基础知识,但我想问一些问题。 为什么 Android 应用程序不直接从运行状态移动到停止状态,为什么它首先要经过暂停阶段?
我一直在为垂直对齐而苦苦挣扎,这是一个看似足够简单的过程,但在不同的语言和元素类型中有很多特质。我已经通过 stackexchange 进行了大量阅读,但似乎无法找到共同的理解思路。 以下是我能够收集
我目前正在上算法课。以下是我在测验中做错的一个问题:基本上,我们必须用大 O 表示法表示最坏情况下的运行时间: int foo(int n) { m = 0; while (n >=2
我正试图在网络上找到一两个以简单术语解释这些内容的资源。此外,这个概念能否以实用的方式用于改进算法?如果是这样,如何?以下是我从联系人那里得到的简要说明。 I dont know where you
考虑 this link来自 Bit Twiddling Hacks 网站。为了计算尾随位,使用了以下算法: unsigned int v; // 32-bit word input to
我是一名优秀的程序员,十分优秀!