- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Destroy 之后,我打印了一条 Log 语句,Log 是否会显示为应用程序已经被销毁并且在应用程序被销毁后无法执行任何指令。
@Override
protected void onDestroy() {
super.onDestroy();
Log.v(TestActivity,"App is currntly getting destroyed")
}
那么会打印“App is currently getting destroyed”吗?如果它不会被打印,那么我如何在 onDestroy 方法中执行代码?
最佳答案
您问题的答案是“视情况而定”。
reference documentation表示 onDestroy
不能保证被调用。
Note: do not count on this method being called as a place for saving data! For example, if an activity is editing data in a content provider, those edits should be committed in either onPause() or onSaveInstanceState(Bundle), not here. This method is usually implemented to free resources like threads that are associated with an activity, so that a destroyed activity does not leave such things around while the rest of its application is still running. There are situations where the system will simply kill the activity's hosting process without calling this method (or any others) in it, so it should not be used to do things that are intended to remain around after the process goes away.
所以,是的,您的消息将被调用除非 Android 首先销毁进程。
文档还说您必须调用父类(super class)实现...
If you override this method you must call through to the superclass implementation.
...但它没有说明调用的顺序。因此,我会查看 Activiy 源代码以了解它在做什么。这是来自 Google Source 的 onDestroy
的(最新版本)源代码.
protected void onDestroy() {
mCalled = true;
// dismiss any dialogs we are managing.
if (mManagedDialogs != null) {
final int numDialogs = mManagedDialogs.size();
for (int i = 0; i < numDialogs; i++) {
final ManagedDialog md = mManagedDialogs.valueAt(i);
if (md.mDialog.isShowing()) {
md.mDialog.dismiss();
}
}
mManagedDialogs = null;
}
// close any cursors we are managing.
synchronized (mManagedCursors) {
int numCursors = mManagedCursors.size();
for (int i = 0; i < numCursors; i++) {
ManagedCursor c = mManagedCursors.get(i);
if (c != null) {
c.mCursor.close();
}
}
mManagedCursors.clear();
}
// Close any open search dialog
if (mSearchManager != null) {
mSearchManager.stopSearch();
}
}
虽然这可能随时改变,但我们可以看到父类(super class)中的 onDestroy
将清理资源(如文档所述)。那么,您的 onDestroy
实现是否依赖于这些资源中的任何一个?这将决定您的代码应该在 super.onDestroy()
之前被调用。如果不是,那么顺序无关紧要(除了你的老师已经告诉你使用什么顺序)。
关于java - 如果 onDestroy 之后有一个 Instruction,这个 Instruction 会被执行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47261991/
是否有任何文档或 cecil 源代码的一部分可供我引用以全面了解 cecil 将针对给定的代码 使用哪些Operand 类型> 值(value)?例如:我可以从 MethodBodyRocks 中了解
在 Destroy 之后,我打印了一条 Log 语句,Log 是否会显示为应用程序已经被销毁并且在应用程序被销毁后无法执行任何指令。 @Override protected void onDe
我注意到,在某些情况下(我仍然是 R 的初学者!),多行指令不能“按原样”合并到简单的行指令中。让我们举个例子,这是我最近在网上的一个类: > make.power cube square ma
我做网站已经有一段时间了,我的网站设计不太好?我的老板正在推荐我去上一些课。 但我真的想坚持开发而不是设计吗? 最佳答案 您无需成为设计师。但我强烈建议您了解该过程和使用的一些技术。拥有这些知识将有助
指令微调 是一种技术,它能让大语言模型 (LLMs) 更好地理解和遵循人类的指令。但是,在编程任务中,大多数模型的微调都是基于人类编写的指令 (这需要很高的成本) 或者是由大型专有 LLMs 生成
我开始探索计算机体系结构领域。有两个关于 ISA 的问题让我困惑。 据我所知,ISA有多种,如ARM、MIPS、80x86等。我想知道CPU是否只能专门读取一种ISA。例如,处理器可以同时读取 80x
这只是一个简单的代码,用于检查一个数字是否是质数,我不知道这是编译器还是代码的问题。如果您能提供一些帮助,我们将不胜感激。 这是代码: #include "stdio.h" int main() {
我有以下一段 x86 汇编代码: 1 2 .text 3 4 .data 5 6 # define an array of 3 dwords 7
我理解计算机是图灵完备的概念(具有 MOV 或命令或 SUBNEG 命令,因此能够“合成”其他指令,例如 )。如果这是真的,那么像 x86 这样的 100 条指令的目的是什么?是为了提高效率? 最佳答
我刚刚开始使用Jenkinsfiles和Docker,所以很抱歉,这很明显。 我有一个包含Dockerfile和Jenkins文件的仓库。 Dockerfile通过添加几个依赖项和构建工具,简单地扩展
当指令 LOAD 800 被输入时,我了解其他值如何加载到累加器中,但我不知道如何获得索引和间接寻址的结果。 最佳答案 不确定您正在讨论哪种架构,因此我将尽我所能进行一般性解释(基于更具体架构的经验,
我正在使用反汇编程序(SmartDec:http://decompilation.info/)并且生成的反汇编中的许多指令看起来类似于: mov rax, [rip + 0x32b5]:64 我不熟悉
我的计算机上有一个 python3 脚本,我可以使用 python3motion_detection.py 运行它,并且该脚本有效,我尝试在我的 Raspberry 上使用它,但失败并显示消息非法指令
我遇到了这个错误 /tmp/ccK86fyk.s: Assembler messages: /tmp/ccK86fyk.s:69: Error: bad instruction `sw $3,0(r3
我正在尝试将一些 C/C++ 代码转换为 UNIX shell。我进行了一些转换,但有时,我发现 C/C++ 中的代码很奇怪,可能是因为我在上下文中不理解它。更重要的是,客户端没有给我输入/输出文件或
我已经尝试过 AVX 内在函数。但它导致“test.exe 中 0x00E01555 处出现未处理的异常:0xC000001D:非法指令。” 我使用的是 Visual Studio 2015。异常错误
这个问题在这里已经有了答案: Is the CSS :not() selector supposed to work with distant descendants? (2 个答案) 关闭 7
在Centos 6.2中,我使用gcc 4.8.0编译DPDK代码(dpdk-stable-17.05.2),遇到编译错误。编译命令:make install T=x86_64-native-linu
我正在浏览一些随机的 Java 代码并遇到了这段代码,我试图理解流程并且很难理解类的实际实现,类的实际操作,所以我的基本问题是WhatDoIDo 类实际上做了什么?任何指导将不胜感激。 问:解释由于在
我在 http://www.problemio.com/problems/problem.php 有一个页面,你在右下角看到我有一张蓝绿色的图像。它确实是一个链接,在该链接中我似乎无法让文本颜色显示为
我是一名优秀的程序员,十分优秀!