问题标签 [ondestroy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
314895 浏览

android - Android 活动生命周期 - 所有这些方法的用途是什么?

Android Activity 的生命周期是什么?为什么在初始化期间调用了这么多类似的发声方法(onCreate(), onStart(), ),而在最后调用了这么多其他方法( , , )?onResume()onPause()onStop()onDestroy()

什么时候调用这些方法,应该如何正确使用它们?

0 投票
2 回答
774 浏览

android - CountDownTimer 不会让我调用 onDestroy

我已经制作了简单的倒数计时器应用程序,但是当我尝试使用 onDestroy 取消倒数计时器时,我得到了错误。我的 onDestroy 代码块:

和 LogCat 错误

任何帮助表示赞赏

0 投票
1 回答
4193 浏览

android - Android:当 Dalvik 杀死这个 Activity 时,不会调用 Activity.onDestroy()

我很困惑Activity.onDestroy()。当我的 Activity 被销毁时,我需要释放一些资源,但似乎 onDestroy() 只是在我按下“返回”键时被调用,而不是在我的 Activity 被 Dalvik 杀死时调用。我只是通过添加日志来测试它:

Log.v("my_tag", "onDestroy() called");

在 onCreate() 方法中也是如此:

Log.v("my_tag", "onCreate() called");

然后我开始我的活动,我在日志中看到:onCreate() called。我按“返回”键,然后再次启动 Activity,然后我看到:

然后我按“主页”键并再次转到我的活动,日志不会改变。在这里好了。

然后我再次按“Home”键并启动一些真正“繁重”的应用程序。在日志中与 onDestroy() 无关,但是当我再次启动我的活动时,我在日志中看到:onCreate() called!所以, onDestroy() 没有被调用,但是我的 Activity 被杀死了。怎么了?

0 投票
2 回答
1439 浏览

android - 活动破坏不起作用时Android线程中断

我是android开发的新手。我有一个活动,我创建一个线程来加载图像并在 imageView 上刷新它。该线程运行一个“无限循环”。我还想在活动停止时停止线程。下面您可以在示例中看到我已实现的内容,但它会引发异常并且线程继续工作或应用程序崩溃。有什么建议么?

很抱歉没有编写完整的代码,但我现在不在家有代码的地方。我应该改变什么才能让它停止?

我还尝试了另一个技巧,我设置了一个公共静态布尔值并在 onDestroy 上将其设置为 false。

在线程中,“无限循环”工作为:

在线程中:

销毁:

那么,有了这个技巧,由于循环将结束,线程在结束它的操作时会被杀死吗?

0 投票
1 回答
474 浏览

android - 从被破坏的活动中回收属性?

我对破坏活动和对象有疑问。

当我从 AsyncTask 附加和分离活动时,我不会从 asynctask 更改 ArrayAdapter(请参阅代码)。所以,我得到的是多个活动被附加和分离(应该改变方向),只有一个任务正在运行和修改一个适配器,而这个适配器又是创建任务的第一个活动的那个。因此,当我在 onCreate() 中附加任务时,我只是将适配器设置为包含任务的适配器,而该适配器又处理了所有值(在示例中只是一个虚拟数字列表)。

这怎么可能?我认为 onDestroy() 会擦除活动本身及其属性,因此在尝试从 AsynkTask 访问原始活动的 ArrayAdapter 时,我会得到一个空指针异常或类似的东西,但下面的代码有效!

这是因为任务保持对 ArrayAdapter 对象的活动引用,因此它没有被删除?或者是别的什么?

我还经历了另一个“类似情况”,其中我从 onRetainNonConfigurationInstance() 返回了一个 Activity 的属性,比如说 A a,它对 B b 具有可见性(这是 Activity 的另一个属性)。然后,当尝试通过a访问b实例时,没有问题,我认为我需要一个包装器来保存两个实例(a和b),否则我会在尝试访问b时遇到异常(我这样做了实际上没有保存)。我不知道它是否与之前的情况有关,在这种情况下,我认为不可用的对象实际上存在,可能是因为对它们的活动引用导致没有删除?

谢谢!

0 投票
3 回答
4926 浏览

android - Android:屏幕旋转、销毁和服务难题

我已经修改了 SDK 演示中的蓝牙聊天示例,以便能够控制 arduino 供电的蓝牙 LED 矩阵。使用聊天程序,我可以通过蓝牙向显示器发送消息。我有一个问题。我做了两个屏幕布局,一个纵向和一个横向。这样,无论方向如何,我都可以让界面占据手机上的最大空间。

问题在于,如果手机旋转,则会调用 OnDestroy() 以重新加载新布局(横向或纵向)。在 OnDestroy() 例程中,如果蓝牙链接已建立,我还会销毁它:

阅读此处的其他帖子,我发现您可以通过在清单中添加“android:configChanges="orientation"”来防止服务停止。这样做,当我旋转屏幕时,我到显示器的蓝牙链接不再终止,但是现在屏幕不会在横向模式下重绘。

为了解决这个问题,我正在考虑删除正在终止连接的“if mchatservice ...”部分,但是当应用程序最终退出时,我仍然需要运行代码。

有没有办法在旋转时重绘屏幕而不终止连接?如果没有,我想我总是可以将服务代码移动到 OnPause() 事件,但是如果应用程序失去前台焦点,这将终止连接。

还有其他方法吗?

谢谢。

0 投票
2 回答
1390 浏览

android - Android:在 onDestroy() 之外调用 Service 的 super.onDestroy()

我有一个正在播放音乐的服务。我已经实现了这样的淡出

这是fade_out Runnable

问题是现在super.onDestroy()在fade_out完成之前被调用- 所以我想在这个可运行对象中调用 super.onDestroy() -但是如何

0 投票
1 回答
285 浏览

android - 当服务即将在 Android 中被终止时进行线程清理

当由于内存不足而调用服务的 onDestroy 时,在该方法中,我是否应该做一些事情,例如告诉工作线程他们应该结束工作,然后等待他们退出,然后让系统终止托管进程?如果是这样,系统允许我等待多长时间?我是否应该让工作线程能够在任何时候尽可能快地结束自己?

还是我完全错了?


或者我应该问:

清理工作线程的最安全或最佳点在哪里?或者什么是最安全或最好的方法。或者根本就没有这种东西,一个线程应该随时准备被杀死而不通知?

0 投票
1 回答
936 浏览

android - onDestroy() 在 onPause() 之后被调用

我正在实施油漆应用程序。我的问题是,当我在对象上着色时。经过一段时间屏幕进入睡眠状态。当我唤醒屏幕时,我的旧油漆丢失了。我发现它在 Onpause 后自动调用 OnDestroy 的问题,所以它会清除画布。如何停止自动调用 Ondestroy。

0 投票
2 回答
307 浏览

android - Android - 在 onDestroy() 之后失去 UI 元素的范围

当手机插入某些类型的充电器并进入“汽车模式”或“驾驶模式”时,我正在尝试处理我的应用程序中出现的问题。

在正在运行的应用程序中,调用onDestroy(),紧接着是onCreate(),应用程序再次正常启动。但是,随后对更新 UI 元素的调用(在新创建的主 Activity 中)现在没有任何效果,而且看起来我已经失去了布局的范围。

我没有考虑到的 onDestroy() 可能发生了什么?我没有做太多的清理 onDestroy 因为我认为我不需要。