问题标签 [activity-lifecycle]

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 投票
1 回答
4265 浏览

android - 程序退出时调用方法 - onDestroy 不可靠

当程序通过点击后退按钮退出时,我想执行一些功能。这现在由 onDestroy() 完成,它适用于除一种情况之外的所有情况。在某些情况下退出程序时从另一个活动返回时,不会调用 onDestroy。

我知道理论上 onDestroy 应该只在 Android 由于内存不足而关闭应用程序时调用,但对我来说,onDestroy 始终有效,而且只有在非常特殊的情况下才有效。

使用 onPause 或 onStop 不起作用,因为我只想在程序退出时调用该函数,而不是在调用另一个活动时调用该函数。

那么捕捉后退按钮单击并在那里调用函数的最后一种方法是什么?或者有没有其他解决方案?

0 投票
3 回答
2552 浏览

android - Android 应用程序中活动流的最佳实践

试图了解我的 android 应用程序生命周期的最佳实践,以及活动如何融入其中。

例如,我有一个主要活动,有点像我的应用程序的“家”。但是,在启动时,我“可能”需要运行几个活动,具体取决于几种情况,其中一个是应用程序第一次运行。

将这些“启动”/家务活动从我的“家庭”活动中调用是最佳做法吗?或者应用程序应该从“家务”活动开始,完成工作,然后完成()并开始“家庭”活动?

感谢您对此的建议,

-- Ĵ

0 投票
0 回答
489 浏览

android - Retaining an AlertDialog

I have an Activity that pops up an AlertDialog under certain circumstances.

However, if you rotate the device, the Activity gets destroyed and recreated and the AlertDialog is gone.

How are people handling this?

It would be easy enough to save some flag to savedInstanceState letting the Activity know to throw the AlertDialog again upon creation, but what if your AlertDialog needs lots of data and that data is dynamic? That's going to get ugly really fast.

Especially in my case:

When my app wants to make a web service call, it boots up an IntentService, passes an Intent with the necessary data (credentials and data to send to the web service) and starts. If the Intent being processed by the IntentService fails due to a log in error, it broadcasts a message which my Activities will hear. I've extended Activity and ListActivity and added a BroadcastReceiver to them. My app's Activities extend from these. They then pop up an AlertDialog requesting the user's credentials. The original Intent's extras also get passed along so, after a successful login, it can get re-processed. Unfortunately, when the user changes the screen orientation (for example, by pulling out the hardware keyboard) the AlertDialog is going to disappear.

0 投票
2 回答
1336 浏览

android - 为什么没有更简单的方法来阻止另一个活动?

我知道有很多关于此的主题,并且我了解(或者至少我认为我了解)活动生命周期。我知道 Activity 本身应该处理它的生命周期,包括停止 Activity 的过程。

但是,在某些情况下,这是不切实际的,例如,如果您有一个控制器来管理您的接口,并且可能接收 I/O 结果。

那么,仅仅发送一些带有 a 之类的动作的 IntentACTION_STOP_REQUEST并让 Activity 处理它不是很好吗?

0 投票
3 回答
1588 浏览

android - 为什么在 onSaveInstanceState() 中保存非 Parcelable 对象的哈希表有时会起作用?

在阅读了一本介绍性的 Android 编程书籍之后,我想修改示例应用程序,以巩固我对一些没有真正涵盖的主题的理解。在进行更改时,我犯了一个错误,但我很好奇为什么该错误在某些情况下有效,而在其他情况下无效。

应用程序中的一个活动将一系列问题存储在 a 中Hashtable<Integer, Question>,其中 Question 是一个包含一个 int 和两个字符串的小类。正如最初写的那样,活动从每个服务器上下载问题onCreate(),所以我想实施onSaveInstanceState()以防止一些冗余下载。 onSaveInstanceState()使用 .将 Hashtable 保存到 Bundle 中putSerializable()

甚至在我知道 Parcelable 是什么或如何实现它之前,它就可以完美地改变屏幕方向。我只知道当我按下模拟器的主页键和应用程序无声无息地崩溃时出现问题,没有 LogCat 输出。堆栈跟踪使我查找 Parcelable 并让 Question 实现它。

我的问题不是我做错了什么。问题是这样的:当 Question 类没有实现 Parcelable 时,为什么应用程序只在按 Home 而不是在屏幕方向更改时崩溃?

0 投票
1 回答
2058 浏览

android - 在 onRestart() 中重新创建活动是否可以

我有一个包含 ListViews 和 TextViews 的复杂 TabActivity。我没有搞乱手动 UI 更新,而是决定在前台“重新创建”活动(强制完全重绘)。假设我从活动 A 导航到 B。当回击 B 时,必须重新创建活动 A。这是代码:

它有效,但我想知道我是否做错了什么,也许有一个更优雅的解决方案。您能否建议这种情况的最佳实践?

0 投票
7 回答
15448 浏览

android - 在模拟器中模拟杀死活动

我想在模拟器上测试我的应用程序onSaveInstanceStateonRestoreInstanceState

我发现了这个,它说我们可以在方向变化期间模拟这个,但是我将我的一些变量存储在应用程序级别(子类android.app.Application),所以方向变化不会消除变量。

所以我的问题是,我怎样才能模拟低内存情况从而杀死我的活动?

希望我已经说清楚了。谢谢

0 投票
2 回答
1776 浏览

android - Android - 返回登录屏幕时清除内存中的现有对象和变量

我有一个问题,如果我的用户在仪表板屏幕上并按下手机的“返回”按钮,这会将他们返回到登录屏幕(仍然有他们的详细信息输入),如果他们再次登录,一些变量是全局的,所以这些然后被有效地重用,这会影响应用程序的功能。

我的想法是,当此活动恢复时,我可以覆盖 onResume 方法,然后清除所有内容,但我不确定如何编写代码并清除应用程序内存中仍存在的表单和任何变量。

谢谢。

0 投票
1 回答
840 浏览

android - Android onActivityForResult 如何在 foregrnd 和 bckgrnd 之间切换应用程序?

考虑这种情况:

===========================================

脚步:

  1. 启动家长活动。
  2. 单击父级上的按钮 b1 并启动子级
  3. 孩子被成功带上并出现在屏幕上
  4. 现在点击 Android 设备(硬件)上的 Home 按钮
  5. 调用 Child 的 onPause、onStop 和 onDestroy。

但是当应用程序被带到后台时,我没有看到程序控件进入 Parent 的 onActivityResult。

当应用程序处于后台状态时,此特定程序的程序控制在哪里?

在将应用程序带回前台时,在活动生命周期方面的预期行为是什么?

提前致谢

任何人都可以解释一下吗?

0 投票
3 回答
4016 浏览

android - 让对象监听 Activity 生命周期事件?

Activity当以下事件发生时,我编写的其中一个类需要做出反应:

  • 开始()
  • 暂停()
  • onResume()
  • 停止()

我可以对 Activity 本身的那些做出反应:

Activity我可以告诉有问题的对象发生了某个事件,但我不喜欢这个想法:它需要开发人员在我的object/class. 理想情况下,我希望对象负责注册这些事件并将自己设置为侦听器,独立于Activity.

有任何想法吗?提前致谢。