- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个 Android 应用程序,当用户打开我的应用程序时,我首先会显示 Splashscreen
然后该用户导航到 HomeActivity
.
现在实际上我看到了一件奇怪的事情发生在ondestroy()
之前我的功能 Splashscreen
我正在调用一个正在调用 Toast
的函数并制作progressBar GONE
但问题是,我在循环中错误地调用了这个函数,所以发生的事情是调用了我的 Splashscreen ondestroy 函数,我的 HomeActivity 正在显示,但仍然一次又一次地从 Splashscreen 显示 Toasts。
现在我的问题是,在破坏 Splashscreen 之后为什么 android 没有给我错误,因为我正在引用 Toast and ProgressBar
它绑定(bind)到 Splashscreen,所以它一定会给我错误。
而且,如果它不应该给我错误,那么请告诉我这里工作的概念是什么,我不知道。 不是我们在 Activity 类中创建的所有变量都只绑定(bind)到该 Activity ,当该 Activity 被销毁时,它们也会被销毁 ??
下面给出了我的Splashscreen 函数代码,它被一次又一次地调用
public void function showdialog() {
Toast.makeText(getBaseContext(), "Total Pending Notifications: " + pen_notifs, Toast.LENGTH_SHORT).show();
progressbar.setVisibility(View.VISIBLE);
}
提前致谢。
最佳答案
我查看了源代码,这是我的理论。
Toast
在内部使用 Service
(通知服务)来排队并显示 Toast
View 。 Service
在后台运行,其生命周期比任何 Activity
都长。
Notification Service
引用了您使用 makeText()
方法创建的 Toast
View 。
并且 Toast
View 有一个对 context
的隐式引用,它是您的 Activity
的 context
。
因此,由于 Notification service
引用了您的 Toast
View ,而 toast
View 引用了您的 Activity
,你的 Activity
根本没有被销毁。您的 Activity
正在泄漏。由于您的 Activity
尚未被销毁,因此即使在 onDestroy( )
回调。
for 循环一直在运行,Notification service
隐含地持有对您的Activity
的引用。所以您的 Activity
不可能被销毁。
关于android - 为什么在我的 Activity 调用 ondestroy 之后,我仍然看到来自被销毁的同一个 Activity 的 Toasts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45654532/
当你有一个对象 OBJ1 包含一个关键部分 CS 和一个指向另一个对象 OBJ2 的指针时,我无法弄清楚什么是正确的关闭过程 假设您有两个函数 A 和 B。 A进入临界区,修改OBJ2中的数据后离开临
我有一个成员变量声明为 CComPtr m_spXMLDoc; XML 文档是这样创建的 CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_INPROC
在我的工作平台中,我遇到了 session_destroy 问题 function logout() { $_SESSION['id'] = ''; session_destroy(); } 在这
如何使用 destroy 删除 jScrollPane。请您给出以下代码的简单示例: $(document).ready(function() { $(".div1").jScrollPane
这是我在这里发表的第一篇文章,但我想对社区表示感谢,因为通过来到这里并在已经得到解答的问题中找到解决方案,我已经无数次找到了问题的解决方案。 话虽这么说,我想进入正题。我正在 Code Gear 的
我在导航 View 中工作。在此导航 View 中,您可以偶然发现个人资料页面。在此个人资料页面中,您可以看到与当前个人资料相关的其他个人资料(基本上是数据 View 中显示的图片)。您可以通过点击这
我想销毁项目中的 session ,这样当我单击“注销”时,它会转到页面“KillSession.jsp”,在该文件中我编写了“session.invalidate();”然后我将用户重定向到登录页面
我有关于 Thread 的 2 问题,我只是想澄清一些事情。使用以下代码: public class MyThread implements Runnable { Boolean StopTh
我遇到了内存泄漏,代码类似于下面的代码(这是每个循环都有不同输入的模拟)。 问题 对象 Object_XXX 非常复杂,它与数据库以及其他填充了数据库数据的对象有连接。 for(int i=0
当我在 Python 中启动一个类时,我给它一些值。然后我调用类中执行某些操作的方法。这是一个片段: class TestClass(): def __init__(self):
我想删除所有 div、类、属性和几乎所有 CKEDITOR 添加到 DOM 的内容。例如调用 jquery tabs("destroy");将删除所有由 jQuery 选项卡添加的 div。我怎样才能
我想清除析构函数中的一个映射,但我不知道它是否为空。如果我按如下方式清除它可以吗? for(std::map::iterator it = m_map.begin(); it != m_map.end
我正在尝试克隆 TikTok 应用。对于主屏幕,我制作了一个 VerticalViewPager(自定义 View 分页器),其中包含“点赞”按钮、标题和评论。我正在从 Firebase 检索视频。
我正在制作自己的游戏。目标之一是在世界中拥有尽可能多的物体。在这个游戏中,需要在一些不可预测的时间段内创建许多对象(比如武器开火会创建一个对象),一旦该弹丸击中某物,该对象也需要被摧毁(也许它击中的东
有没有办法在 JavaScript 中破坏 HTML5 WebWorker? 这是我的情况:我有一个 Web 应用程序生成相当数量的 WebWorker(在 16 到 32 之间的任何地方)来优化一些
如何销毁 php 中的 session ? 事情是当用户点击注销按钮时, session 将结束,他将被重定向到 index.php 这是我的代码 客户.php 这是来自用户想要再次登录的 ind
关于 GtkBuilder 的问题。 当我们取消引用构建器指针时,它是否会破坏构建器创建的所有屏幕/小部件? if( builder_ptr ) g_object_unref(G_OBJECT
有没有办法销毁 WebView 实例?如果页面加载,并说视频开始播放,我希望能够,当我隐藏 WebView 时,基本上可以销毁它,或者至少重置它。 我知道我可以听 visibleProperty 并执
我有一组可拖动的元素。如何删除可拖动功能? $('.draggable').draggable('disable') 在我的情况下不是一个选项 $('.draggable').draggable('d
下面的代码会抛出一个 EZDecompressionError 消息 'Invalid ZStream operation' 每当行 Reader.Free 被执行。有人可以告诉我这段代码有什么问题吗
我是一名优秀的程序员,十分优秀!