问题标签 [android-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 回答
95 浏览

android - 修改Android应用生命周期

我试图了解如何管理 Activity 生命周期!是否有人在触发生命周期的所有事件?也许是 ActivityManagerService?

如果我想自定义活动生命周期并向其添加新事件,我该怎么办?关于需要进行哪些更改的任何指导?

0 投票
2 回答
3739 浏览

android - 按下后按以导航回上一个活动时调用生命周期?

当启动同一个应用程序中的另一个活动,然后单击后按按钮以导航回它时,调用什么活动状态?

在返回上一个活动的过程中调用了什么生命周期方法?

0 投票
7 回答
28741 浏览

android - Android:在什么情况下出现对话框会导致 onPause() 被调用?

Android活动文档中的一个片段(向下滚动到“前台生命周期”行)说:

Activity 可以频繁地进出前台——例如,onPause()在设备进入睡眠状态或出现对话框时调用。

我不太明白这一点。在什么情况下会发生这种情况?onPause()仅当相关对话框的上下文与要在其上显示对话框的活动不同时才调用?

编辑:添加代码示例以详细说明我的疑问

根据上面提到的文档引用,当显示以下代码中的(或只是)onPause()时,是否应该调用我的活动方法?显示对话框时是否应该看到“onPause called”日志条目?AlertDialogDialog

但我不认为会发生这种情况。如果我正确理解了 Android 生命周期,它也不应该!那么,文件指向的是什么?

0 投票
3 回答
2337 浏览

android - Call something once in app lifecycle?

In order to call some method just once in the app's lifecycle, not each time the app is launched, where should I place such method?

In onCreate() or somewhere else?

0 投票
5 回答
41518 浏览

android - 关于其活动的片段生命周期

情况 我的活动等待异步操作,在收到异步操作的回复后,它需要将信息传递给其中的 2 个片段。

要求 1. 两个 Fragment 都需要完成onCreateView调用才能加载布局,2. 他们需要将自己附加到其 Activity 才能getActivity()正常工作。

我在两个片段中都编写了一个setData()方法,并正在寻找活动生命周期中的“正确”位置来调用它们。

onCreate()的活动不工作,onStart()活动不工作和onStart()片段不工作。

没有任何效果,我在这里缺少什么?

0 投票
5 回答
9264 浏览

android - Android Chronometer,保留时间状态(并在后台继续计数)

我有一个计时器,从用户遇到该活动的时间开始计数

我目前在 onCreate 期间使用 Chronometer 设置(最初仅在满足某些条件时启动)。但是我需要计时器一直向上计数,直到应用程序及其所有视图都关闭(我有一个“退出”功能来做到这一点)。

问题是每次我查看另一个选项卡并返回其活动时,Chronometer 都会重置为零。(这与oncreate有关,但我不知道如何解决)

我没有找到一种直观的方法来自行保存计时器的状态或在后台计数(或者可能自己跟踪时间并在不同的时间点直观地更新计时器)

我的一个想法是使用服务启动 Chronometer 并让服务继续计数,同时在现有活动更新中使用 textview 使用计时器的当前时间计数作为字符串

对此问题的已知方法的任何见解将不胜感激!

这更加复杂,因为这是 tabhost 中的一个活动,并且 tabhost 每次加载视图时都会调用 onPause 和 onResume,因此这会破坏生命周期功能。

0 投票
2 回答
301 浏览

android - Android - 重启后开启系列活动

有我的情况。无论他们在做什么,我都有相同的活动一个接一个地进行。让我们从字母表开始命名它们。当用户使用我的应用程序时,他会通过活动并在它们之间建立自己的路径,因此他可以使用后退按钮返回相应的后退顺序。

他从行动开始。A - D - F 并使用后退按钮,他从 F 回到 D 和 A。好的。现在,当 Android 系统解决应用程序不再使用或在某个特定时间需要大量 RAM 时,系统会将其杀死。我的目标是找到,如何将应用程序恢复到以前的状态,包括打开活动的顺序?

可能不太清楚,所以举个例子:

用户有打开的活动 A(登录) - D - F - G,将其最小化,一段时间后,应用程序被杀死。当他再次启动这个应用程序时,他需要在活动 A 上登录,然后他必须看到活动 G(= 他上次在那里),当他按下后退按钮时,他会去做活动 F,然后是活动 D 等等on... 就像恢复一排活动。我知道我必须保留存储在我的活动(D、F、G)中的所有信息,但是真的可以像这样保留应用程序状态吗?

感谢您对此发表任何评论

解决方案:

我正在跟踪标志,它标识了我的应用程序所处的状态。如果它是 0,则表示我正在正常打开新活动。在每个活动开始时,我将共享首选项字符串放入其中,其中包含我所有的活动历史记录。每个活动都有自己的 id(同样是 sharedPref)。在另一个共享首选项中,当 onPause 发生时,我将其保存为字符串公式数据(或带有 GUI 的数据)。我将标志设置为 1。当应用程序启动且标志为 1 时,我从 sharedPref 恢复应用程序堆栈。从另一个共享首选项为它们中的每一个设置数据。就是这样,应用程序状态恢复了:-)

0 投票
9 回答
39180 浏览

android - 在片段中显示片段查看器

我有一个包含 ViewPager 的片段。ViewPager 与包含一组片段的适配器相关联。

加载父片段后,我遇到了一条IllegalStateException消息:java.lang.IllegalStateException: Recursive entry to executePendingTransactions

一些研究使我得出结论,系统无法在另一个片段中显示片段,但是似乎有一些迹象表明使用 ViewPager 完全可以做到这一点( ViewPager 中的一个错误将它与其他片段一起使用)。

事实上,如果我向我的父片段添加一个按钮,该按钮mPager.setAdapter(mAdapter)在按下时调用我的 ViewPager,则 ViewPager 会成功加载。这并不理想。

那么问题必须与片段生命周期相关。因此,我的问题是:有没有其他人找到解决这个问题的方法,如果有,如何解决?

有没有办法将 ViewPager 上的适配器设置延迟到片段事务之后?

这是我的父片段代码:

和适配器:

0 投票
1 回答
248 浏览

android - Android:阅读 Running + Paused State Tasks 列表

我想读取所有正在运行的应用程序的包名称。

这是我阅读运行应用程序的代码:

输出 :

但这仅显示LifeCycle 中具有运行状态的应用程序。

我如何阅读所有(包括运行状态和暂停状态)任务?

0 投票
2 回答
1065 浏览

android - 处理方向变化的状态

如何处理所有方向事件发生的状态?

就像是:

  • 开始之前(保存一些屏幕状态)
  • 发生时(动画目的)
  • 发生后(加载屏幕状态)

我知道onConfigurationChanged可以处理方向变化。我试过这个:

在 saveState 上,我将在 Gallery 上查看的 lastIndex 存储在 SharedPreferences 上。在 loadState 上,我从 SharedPreferences 中获取 lastIndex 并将其设置为 Gallery 中的当前位置。

我也尝试将 loadState 放在 onResume 方法中,但在方向更改发生后它不会被调用。