草庐IT

onDestroyed

全部标签

java - 在 onDestroy 中执行长时间运行的操作

我有一个“长时间运行”的清理操作,需要在我的Activity的onDestroy()中执行。执行此操作的最佳方法是什么?如果我使用Thread来执行此操作,我的onDestroy()将立即返回;但是Thread引用会发生什么?我正在寻找有关我需要注意的任何影响/陷阱/绊线的建议,因为我假设即使在Activity被销毁后,该进程仍然存在。背景:我正在使用JmDNS在我的应用程序中。当用户完成我的应用程序时,我想清理JmDNS实例。我使用JmDNS类的close()方法来执行此操作。但是,此方法需要超过5秒才能完成。因此,用户在触摸返回键后会在屏幕上看到我的Activity很长时间。我还没

android - 通过滑动从后台删除 Activity 后,不会调用 Activity 的 onDestroy() 方法

我在我的Application类中的私有(private)类中实现了ActivityLifecycleCallbacks。如果使用主页按钮或后退按钮,将调用生命周期的onStop()和onPause()方法。如果我通过从后台滑出来终止Activity,则不会调用onDestroy()方法。下次我开始Activity时会调用它。我正在使用moveTaskToBack(true)以防按下。一定是什么问题,当我们从后台滑出时应该调用哪个生命周期方法? 最佳答案 来自documentationonDestroy()的:Note:donotc

android - 按下后退按钮时调用 onDestroy()

在我的Activity中,我覆盖了onDestory()并且只是放置一个日志调用以显示是否正在调用此方法。(在Android4.2.2和4.4.4上测试)@OverrideprotectedvoidonDestroy(){Log.i(TAG,"onDestroy()wascalled");super.onDestroy();}当我按下后退按钮时,会调用此方法(我看到了日志)。我相信除非手机内存不足或其他原因,否则这不应该发生。除了MainActivity和一些fragment,我在应用程序中什么都没有。这是用户在MainActivity中并按下后退按钮时的日志:I/MainActivi

android - 使用 IntentService 进行位置监听,但在 onHandleIntent 之后立即调用 onDestroy

我正在使用IntentService来监听GPS位置更新,因此它会在用户离开Activity时运行。IS在消息中将位置发送给Activity的处理程序。问题是,当用户点击“停止跟踪”按钮时,状态栏通知“正在跟踪...”仍然存在,因为它是在IntentService中创建的。因此我覆盖了onDestory()以便我可以调用:mNotificationManager.cancel(TRACKING);但问题是当我实现onDestroy()时,它在onHandleIntent之后立即被调用。如果我删除我的覆盖onDestroy()代码,那么它不会立即被调用并且运行良好,将位置发送回Activ

屏幕锁定时调用的 Android Activity onDestroy()

我的Activity类中的onDestroy函数在屏幕休眠或屏幕锁定时被调用。我知道这不应该发生,因为控制流应该是onPause()->onStop()。在锁定屏幕上,控制流程是这样的:onPause()->onStop()->onDestroy()。我已经在我的androidlist中给出了android:configChanges="orientation|keyboardHidden",正如对类似问题的答案所建议的那样,但这没有用。当从onStop()检查时,isFinishing()函数返回false。谁能帮我解决这个问题。 最佳答案

android - 将数据传递给 Service 的 onDestroy()

我想知道服务是否因特定Activity而终止,因此我在调用stopServivce(service)时传递了该Activity的字符串。代码如下:Intentservice=newIntent(Activity.this,service.class);service.putExtra("terminate","activityterminatedservice");stopService(service);但我似乎可以在onDestroy()方法中使用getIntent().getExtras().getString("terminate);访问此变量。[编辑]我找到了绕过这个障碍的方

安卓初学者 : onDestroy

覆盖Activity的ondestroy时,我应该在super.onDestroy()之前或之后放置命令吗?protectedvoidonDestroy(){//option1:callbackbeforeor...super.onDestroy();//option2:callbackaftersuper.onDestroy();}(现在我担心:如果super.onDestroy太快,它永远不会到达选项2。) 最佳答案 任何可能与使用Activity资源相关的事情都应该在调用super.onDestroy()之前进行。它之后的代码

android - onDestroy() 或 finish() 是否真的终止了 Activity ?

其实我知道我问的是Android的简单和基本概念。但是我对这些finish()和onDestroy()方法有点困惑。这是否会终止Activity并释放与这些Activity相关的资源?我尝试了一个只包含一个Activity的简单应用程序。我认为这个概念就像当应用程序运行时,Activity就会启动。当我们点击后退按钮时,它就会完成。我在每个生命周期方法中给出了一些toast消息以了解内存使用情况。当我单击后退按钮时,它会执行onPause()、onStop()和onDestroy()。我以为这个Activity结束了。但是当我再次重新启动该应用程序时,它占用的内存比上次更多。每次我从e

Android:onDestroy() 方法中的语句顺序

如果我重写我的主ActivityonDestroy()方法以便在屏幕旋转时回收位图,我应该在我的Bitmap.recycle()之前或之后调用super.onDestroy()吗?重要吗? 最佳答案 顺序无关紧要。onDestroy()的基本实现除了让你调用它之外什么都不做。一些派生类(例如ListActivity)可能会做一些事情,但只要您在调用派生类后不尝试使用它们的任何状态就可以了。 关于Android:onDestroy()方法中的语句顺序,我们在StackOverflow上找到

android - onStop 与 onDestroy

我曾尝试研究具体何时调用Activity的onDestroy方法,但我读到了一些令人困惑和相互矛盾的信息。一般来说,我的问题是:在什么情况下onDestroy方法实际上是在Activity上调用的?更具体地说,如果我有两个Activity,ActivityA和ActivityB,如果ActivityA正在运行并且我创建了一个Intent并切换到ActivityB,ActivityA只是停止了,还是被销毁了? 最佳答案 如官方所述documentation:onDestroy()在您的Activity被销毁之前您收到的最后一个电话。这