Android Studio - 活动生命周期,简历

时间:2015-11-20 16:39:18

标签: android onresume activity-lifecycle

如何通过按下按钮并因此启动意图,或者如果用户选择导航回来,我是否知道活动是否已进入onResume?

编辑:

  • 基本上,活动A正在播放一首歌

  • 您可以选择要在活动B中播放的新歌曲,该歌曲将意图发送回活动A以开始新歌

  • 但此刻如果"返回"从活动B中按下,我需要继续播放该歌曲,而不是它在重启的那一刻,因为它在onResume()之前运行了意图;

2 个答案:

答案 0 :(得分:1)

当用户从Activity导航到另一个Activity时,您可以使用startActivityForResult并在新setResult中设置参数,例如按下哪个按钮Activity

你不能做的事情总是知道用户是如何进入onResume的,因为事情发生在您的控制范围内。例如,电话可以为应用程序提供背景,一旦完成,它将返回到前景。

如果您有间接操作(例如活动A),您还可以使用onNewIntent来帮助从未启动您要监控的Activity的其他Activity导航 - >活动B - >活动C - >活动A)。

对于PendingIntents,您还可以包含有关启动应用/ Activity的数据。

编辑:

如果您只是想将数据放入Intent,那么当Activity启动时,您可以使用以下代码:

Intent intent = new Intent();
intent.setClass(this, MyActivity.class);
intent.putExtra("BUTTON_ID", "button_a");
startActivity(intent);

但是,请记住,如果onNewIntent已在运行,Activity已发送至Intent至"启动&{34},则需要使用Activity #34;它。这似乎是你遇到的核心问题。但是,您还需要重置"使用后的意图数据 - 否则,如果Activity在没有新的Intent的情况下恢复,那么您仍然会拥有旧的Intent数据。

答案 1 :(得分:0)

您可以覆盖Project以查看用户是否按了“返回”按钮。但是,用户仍然可以按Home / Recents按钮将活动发送到后台。