Android Studio - Activity 生命周期,关于简历
Android Studio - Activity Life Cycles, On Resume
我如何知道 activity 是否因按下按钮而进入 onResume 并因此启动了 intent,或者用户是否选择了返回导航?
编辑:
基本上,ActivityA正在播放歌曲
您可以选择要在 Activity B 中播放的新歌曲,这会向 activity A 发送一个 intent 以开始播放新歌曲
但是目前如果从Activity B 按下"back",我需要这首歌继续播放,而不是它在重新启动时所做的事情它在 onResume();
中运行之前的意图
您可以覆盖 onBackPressed
以查看用户是否按下了“后退”按钮。但是,用户仍然可以按Home/Recents按钮将activity发送到后台。
当用户从 Activity
导航到另一个 Activity
时,您可以使用 startActivityForResult
并在 setResult
中设置参数,例如按下哪个按钮新 Activity
.
你不能做的是总是知道用户是如何到达 onResume
的,因为事情发生在你的控制之外例如 phone 调用可能会使应用程序后台运行,一旦完成,它 returns到前台。
您还可以使用 onNewIntent
帮助从另一个 Activity
导航,它没有启动您正在尝试监视的 Activity
,如果您有间接操作(例如Activity A -> Activity B -> Activity C -> Activity A).
对于 PendingIntents
,您还可以包含有关启动应用程序的数据/Activity
。
编辑:
如果您只是想将数据放入 Intent
以便在 Activity
启动时,您可以使用如下代码:
Intent intent = new Intent();
intent.setClass(this, MyActivity.class);
intent.putExtra("BUTTON_ID", "button_a");
startActivity(intent);
但是,请记住,如果 Activity
已经 运行,并且新的 Intent
发送到 Activity
,您将需要使用 onNewIntent
到"start"吧。这似乎是您遇到的核心问题。但是,您还需要在使用后 "reset" 意图数据 - 否则如果 Activity
在没有新的 Intent
的情况下恢复,那么您将仍然拥有旧的 Intent
数据。
我如何知道 activity 是否因按下按钮而进入 onResume 并因此启动了 intent,或者用户是否选择了返回导航?
编辑:
基本上,ActivityA正在播放歌曲
您可以选择要在 Activity B 中播放的新歌曲,这会向 activity A 发送一个 intent 以开始播放新歌曲
但是目前如果从Activity B 按下"back",我需要这首歌继续播放,而不是它在重新启动时所做的事情它在 onResume();
中运行之前的意图
您可以覆盖 onBackPressed
以查看用户是否按下了“后退”按钮。但是,用户仍然可以按Home/Recents按钮将activity发送到后台。
当用户从 Activity
导航到另一个 Activity
时,您可以使用 startActivityForResult
并在 setResult
中设置参数,例如按下哪个按钮新 Activity
.
你不能做的是总是知道用户是如何到达 onResume
的,因为事情发生在你的控制之外例如 phone 调用可能会使应用程序后台运行,一旦完成,它 returns到前台。
您还可以使用 onNewIntent
帮助从另一个 Activity
导航,它没有启动您正在尝试监视的 Activity
,如果您有间接操作(例如Activity A -> Activity B -> Activity C -> Activity A).
对于 PendingIntents
,您还可以包含有关启动应用程序的数据/Activity
。
编辑:
如果您只是想将数据放入 Intent
以便在 Activity
启动时,您可以使用如下代码:
Intent intent = new Intent();
intent.setClass(this, MyActivity.class);
intent.putExtra("BUTTON_ID", "button_a");
startActivity(intent);
但是,请记住,如果 Activity
已经 运行,并且新的 Intent
发送到 Activity
,您将需要使用 onNewIntent
到"start"吧。这似乎是您遇到的核心问题。但是,您还需要在使用后 "reset" 意图数据 - 否则如果 Activity
在没有新的 Intent
的情况下恢复,那么您将仍然拥有旧的 Intent
数据。