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

android - How to return to the same activity instance after resuming it?

The problem is somewhat odd and after having trying to figure it out for about a day now, I am posting it here. I have an application where an activity A(main activity) launches other activities(B,C or D). The issue here happens when activity A has started Activity B and 'home' button is pressed.

Case 1 - When I test my application in debug mode on my device (HTC Desire) after pressing the 'home' button, I again click the application icon, it returns to the same activity (activity B), which is what is should do. No issues here.

Case 2 - When I export the signed package, and then install the application on the same device, then if I click the application icon after pressing the 'home' button, then a new instance of activity A (main activity) is launched ON TOP of activity B. I got to know this because when I press 'back' from that activity, it returns to activity B and pressing 'back' again shown activity A.

The behavior ceases to exist if the application is quit in the same order it was started, that is, if I press 'back' from activity B, then 'back' from activity A (exit).

After this everything runs fine. I have tested it many times with different settings but I can't seem to figure out why the behavior is like this.

Any help is appreciated.

0 投票
2 回答
1376 浏览

android - 进程被杀死后不调用 onActivityResult

我有一个主要活动(Main)和另一个从 Main 调用的活动(Sub)

当我在 Sub 时,我终止了进程(使用任务管理器或 by adb shell kill <pid>),然后重新打开应用程序,我立即被带到 Sub。

在 Sub 中,我有这段代码可以回调到 Main 活动:

onActivityResult如果我没有终止进程,我会收到 requestCode (25)、resultCode (RESULT_OK) 和数据。但是在这种情况下,我被带到主要活动,但onActivityResult 没有被调用。

这是Android的工作方式(我没想到),还是我的方法有问题?


更新:这发生在我的 Nexus One、CyanogenMod 7.0.2、Android 2.3.3 上。我尝试使用模拟器 API 10,Android 2.3.4,它按预期工作,onActivityResult在我终止进程后仍然被调用。

0 投票
1 回答
4334 浏览

android - Android MediaPlayer 状态更改

我希望这不是一个愚蠢的问题,因为我对 Android 还很陌生,但是我在使用 MediaPlayer 处理状态更改时遇到了麻烦。媒体播放器在屏幕上工作正常,并且在屏幕不可见时继续播放声音,但是当我返回活动并尝试停止媒体播放器时,它不会停止。反正我看不到从 mp 获取 streamID,我可以在 onPause 和 onResume 上保存和恢复它。我一定缺少一些简单的东西。这是我到目前为止的一些片段:

}

0 投票
3 回答
663 浏览

android - Activity 方法的使用

有人可以巧妙地解释以下活动方法的使用:

  • 开始

  • 恢复

  • 暂停

  • 停止

  • 销毁

  • 重启

我知道这些是在 Android 中编程时应该知道的基本方法。但坦率地说,我无法以明智的方式在我的应用程序中实现这些方法。

结石

0 投票
2 回答
273 浏览

android - 如何保存我的活动状态

EditText在它下面有一个列表视图。所以它是这样工作的——当你在编辑文本中输入一些东西时,它会显示列表中与上面的文本匹配的项目。无论如何,我需要保存列表视图的状态。表示如果用户离开此屏幕并返回,列表视图应具有相同的状态,并且编辑文本应填充相同的文本。希望你明白了。

请告诉我如何实现这一目标。

0 投票
4 回答
2019 浏览

android - 开始太多活动?

您好,是否可以在应用程序运行时启动过多的活动?我正在开发一个日程安排应用程序,您可以在其中每天滑动,每天都是一项新活动。现在我想知道你应该开始最大的活动数量是否有限制。当你在你周围滑动一下时,很快就会有大约 20 个活动处于活动状态。

我知道当其他应用程序需要内存时,活动将被杀死,但是在通过按下主页按钮测试和关闭应用程序时,大约有 20 个“正在运行”的活动 htc 感觉似乎正在重新启动,就像由于缺乏可用内存而关闭一样。当我只运行一些活动时,这不会发生。(HTC渴望)

这可能是由于开始的活动过多造成的吗?如果是这样,你应该开始最大的活动数量是否有“限制”?

编辑:我在某处读到 twitter for android 应用程序是由谷歌开发的。但是在该应用程序中,您也可以运行无限数量的活动。

0 投票
4 回答
1576 浏览

android - 为什么完成Activity会抛出NPE?

我有一个错误让我疯狂了好几天。不幸的是,我无法向您展示代码有两个原因,我的老板不会欣赏它,并且代码库太大而无法分享。只要活动完成,就会发生错误。天气是因为我调用了 finish() 还是因为操作系统破坏了它。

问题是,什么是(或可能)导致 FragmentManagerImpl 中的 execPendingActions() 在第 1196 行抛出 NPE。

这是堆栈跟踪:

0 投票
1 回答
102 浏览

android - TabWidget 问题

所以我知道 TabWidget 不会在每个选项卡单击时创建新活动。但是我很困惑..如果我有一个包含地图的选项卡活动,并且如果某些值从与地图活动链接的其他选项卡发生更改,并且它应该(根据我的需要)在地图上使用这些更改的值绘制一些东西考虑到。我怎样才能做到这一点?因为在选项卡上单击地图活动中的 onCreate 方法将不会被调用。我只能退出应用程序,然后再次进入,然后它就像我想要的那样工作。可以从其他活动或某事中调用 onDraw。如果有人知道如何解决我的问题,请告诉我。谢谢你,提前。

0 投票
0 回答
224 浏览

android - 由 FLAG_ACTIVITY_CLEAR_TOP 和 FLAG_ACTIVITY_SINGLE_TOP 的组合恢复的 GC'd Activity 期望什么状态?

想象以下场景:

  • 活动 A 有一个局部变量state并实现onSaveInstanceState()保存它。onCreate()如果 Bundle 传递给它或拥有它,它具有恢复它的代码onRestoreInstanceState()
  • 活动堆栈是 A -> B -> C。
  • 由于资源不足,操作系统收集了垃圾。
  • FLAG_ACTIVITY_CLEAR_TOP我从 C 请求 A 由和的组合提出FLAG_ACTIVITY_SINGLE_TOP

文档说这个标志组合会导致请求的活动不被重新启动。onNewIntent()应该在现有实例上调用。

但是,由于GC,A显然需要重新启动。

state我的问题是:会以某种方式恢复变量吗?

我可以看到它发生的以下方式:

  • onCreate(Bundle savedInstanceState)- 这肯定会被调用,但是 Bundle 是onSaveInstanceState()在 GC 期间保存的那个吗?
  • onRestoreInstanceState(Bundle savedInstanceState)- 它被调用了吗?

谢谢!

0 投票
1 回答
1205 浏览

android - Android Intent 生命周期

我对我的意图生命周期有点困惑。我有一个文件浏览器,它可以让我导航到特定的图形文件,我启动了查看该文件的意图,然后我们就走了。返回键将我返回到文件浏览器。此外,根据此处的建议(来自 Phylum Tea),我现在可以通过网络或诸如 Astro 之类的第 3 方文件浏览器浏览文件。都好。

我的问题是,从 Web 打开一个文件后,它显示得很好,返回键将我返回到 Web 浏览器,但是当我选择另一个文件以按我的意图查看时,第一个文件仍然存在。当我在第一个文件后退出查看器时,意图仍然存在,现在(从 Web 浏览器)后续文件没有传递给查看器,我们只是将原始意图及其内容带回查看.

所以我的问题:当使用意图查看通过我的内置文件浏览器以外的其他方式引入的文件时,我应该在 onClose() 处做什么以确保终止意图?以及如何将这种情况与通过我自己的文件浏览器打开文件区分开来?

希望这是有道理的!

tVm 寻求任何建议。

巴兹