问题标签 [android-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 投票
4 回答
1894 浏览

android - 我们可以做些什么来确保 onDestroy() 被调用?

我有一行代码应该在我的活动被销毁后调用,所以我覆盖onDestroy()了方法并在里面调用它。像这样:

现在我注意到,当我的活动完成时,这行代码并不总是执行。

我读到了这个,有人说不依赖于onDestroy()调用方法的方法。

我的问题是我需要从中调用代码,onDestroy()并且我希望它始终有效。对此有什么想法吗?onDestroy()如果我们不能依赖它来执行,为什么会首先找到它?

0 投票
0 回答
207 浏览

android - 滑动以杀死活动 B 中的应用程序,但活动 A 调用 onDestroy

我有两个活动:ActivityAActivityB。在每个活动中,我都创建了一个带有 onClick 方法的按钮startActivity到另一个活动。

ActivityA.java

ActivityB.java

当我按下doNext它导航到ActivityB时,我杀死了ActivityB上的应用程序,但ActivityAonDestroy上的应用程序被调用(它必须是ActivityB 上的)。有人可以解释一下发生了什么吗?onDestroy

这是我的程序的流程: onCreate (A) -> onStart (A) -> onResume (A) -> onPause (A) -> onCreate (B) -> onStart (B) -> onResume (B) -> onStop (A) -> 在ActivityB -> onPause (B) -> onStop (B) -> onDestroy (A)上终止应用程序(滑动关闭) 。

0 投票
2 回答
824 浏览

android - Android应用程序:在应用程序销毁之前修改firebase数据库

我正在尝试在我的应用程序被销毁时修改我的 firebase 数据库,这意味着当我从最近运行的应用程序列表中删除该应用程序或单击主页按钮时,但我不知道该怎么做,我试图在每个活动的 onDestroy() 方法中执行此操作,但它不起作用。

这是我的 onDestroy() 方法:

0 投票
2 回答
397 浏览

android - onDestroy 方法未在 android o 版本中调用

我想在 ondestroy 覆盖方法中调用方法,但该覆盖方法不仅仅调用 android o。为什么它没有调用是否有任何替代方法请任何人帮助我解决我的问题。在此先感谢。

0 投票
1 回答
109 浏览

android - onDestroy 从商店更新或从工作室重新加载

在我的应用程序中,我需要检测用户何时结束应用程序。当我从 Android Studio 重新加载时,我看到的是该应用程序没有通过 onDestroy。

我想这是因为工作室使用即时运行?只要它仅限于开发环境,这不是问题。

但是当用户从商店更新应用程序时会发生什么?我确定该应用程序在重新打开之前会转到 onDestroy 吗?

我不确定如何准确地测试它,所以我想我可以从论坛上问这个问题。

0 投票
2 回答
204 浏览

android - 以前的活动在查看页面更改时被破坏

我以前的活动在视图寻呼机页面更改(正在运行的活动)上被破坏。因此 onBackPressed() 我的应用程序被关闭。我不想明确回忆以前的活动。

假设 FirstActivity 然后打开具有一个 viewpager 的 SecondActivity 。当我们在 Second Activity 的视图寻呼机中更改页面时,FirstActivity(在后台)被破坏。所以当我们返回并返回时按下 SecondActivity 应用程序关闭

0 投票
2 回答
764 浏览

android - 为什么在切换到另一个应用程序时调用 onDestroy()

好的,我已经阅读了关于 Activity 生命周期的部分,但是我仍然没有得到一些东西。为什么onDestroy()在我的应用程序中被调用,当我切换到在我的手机上运行的另一个应用程序时,或者当我点击主页按钮时。

根据我的阅读,onPause()当应用程序失去焦点时被调用。

系统调用此方法作为用户离开您的活动的第一个指示(尽管它并不总是意味着活动正在被销毁);它表示活动不再在前台(尽管如果用户处于多窗口模式,它可能仍然可见)。使用 onPause() 方法暂停或调整在 Activity 处于暂停状态时不应继续(或应适度继续)并且您希望很快恢复的操作。

OnStop()我也得到:

当您的活动不再对用户可见时,它已进入停止状态,并且系统调用 onStop() 回调。例如,当新启动的活动覆盖整个屏幕时,可能会发生这种情况。系统也可以在活动完成运行并即将终止时调用 onStop()。

但是,我不明白,为什么onDestroy()也会被调用。

onDestroy() 在活动被销毁之前被调用。系统调用此回调是因为:1) 活动正在完成(由于用户完全关闭活动或由于在活动上调用了 finish()),或 2) 系统由于配置而暂时销毁活动改变(如设备旋转或多窗口模式)。

首先,我没有完成我的应用程序,也没有调用finish(). 其次,我知道没有配置更改。

希望有人可以提供帮助。

仅供参考:我的应用程序 extends Activity,使用 multiple Threads,有一个扩展SurfaceView和实现的类SurfaceHolder.Callback,使用 anIntentService和 a ContentProvider。除此之外,没有什么特别的。

PS:当我关掉屏幕的时候,onDestroy()是不会调用的。

PPS:我不是在寻找一个臭的解决方法。我想了解发生了什么以及为什么。

0 投票
2 回答
75 浏览

android - 当我按下后退按钮时,Android 活动失去了我从 UI 中的输入

我是 Android 编程的新手。

我在 Android Studio 中创建了一个简单的 Empty Activity 应用程序,它有一堆 UI 字段。在我输入这些输入字段后,如果我按下后退按钮,活动将被破坏,丢失我输入的所有数据。

但是,如果我按下主页按钮并切换到另一个应用程序并返回到我的应用程序,数据就在那里。

我需要做什么才能不丢失输入的数据?

更新:

看起来我将不得不使用共享偏好。

但是想知道像谷歌浏览器这样的应用程序是如何保存大量数据的,比如网页、网页上的输入字段等

0 投票
2 回答
770 浏览

android - Android应用程序在后台长时间保持时被杀死

我的android应用程序在后台保持一段时间后被Android操作系统杀死。所以当它重新启动时,它是一个空屏幕,因为在操作系统杀死进程时所有数据都被清除了。不幸的是,我没有存储SQLite 或 sharedpreference 中的任何数据。即使在应用程序被杀死后,用数据显示 UI 组件的最佳方式是什么?(不幸的是,由于敏感数据/根据要求无法实现 SQLite)。

1,我观察到,每当在基本活动 oncreate 方法中发生这种情况时,我都会在 oncreate 方法中接收到 savedInstanceState。所以我只是从那里调用启动器方法,并且应用程序按预期工作。但这是完美的实施方式吗?

0 投票
0 回答
496 浏览

java - onDestroy后的android Fragment重新创建 - FragmentManagerState ClassNotFound

我正在使用带有 3 个片段的 viewpager 进行活动。

在开始选择图像意图后,onactivityResult 被调用,但
启动器活动被销毁并再次创建。

(我打开了不保留任何活动,开发者设置。)

现在的问题是在创建活动之后也再次创建片段(通过日志观察)

重新创建活动后,这将出现在日志中。

onActivity 结果通过Activity>getsViewpager>getsAdapter>getsFragment方法以编程方式转发到片段。

但现在getContext()在片段中返回 null。(这意味着新片段被创建但onactivityResult传递给旧片段?)我期望旧片段应该重新附加或onActivityResult传递给新片段。

我如何区分新/旧活动/片段?如何在重新创建活动后简单地恢复片段?解组错误时导致 Class not found 的问题是什么。