0

我正在制作一个简单的电子书阅读器应用程序,并且很多情况下都可以调用一个活动。

我想区分被调用者活动以了解它的起源动作,以防万一

  1. 从我的另一个活动:这可以通过 StartActivityForResult调用活动轻松解决。
  2. 共享操作后由其他包应用程序单击后退按钮调用(“哎呀,我错过了单击共享按钮,然后返回。”)。
  3. 由用户的多任务选择切换。
  4. 由用户在开始屏幕上单击调用:这可能由 android 清单中的 MAIN 入口点知道。

如何知道以上情况?

4

2 回答 2

0

我不太确定上述问题的实际方法,因为我也是 android 的新手。但据我所知......由后退按钮调用并由用户的多任务切换导致活动进入pause状态。

因此,您可以从"onPause"活动中的方法访问它。

于 2013-08-18T07:30:50.527 回答
0

我不知道你为什么需要这样做,但是......

1.来自我的另一个活动:这可以通过调用活动的 StartActivityForResult 轻松解决。

是的,只要调用Activity是您自己的,因为您不能保证任何第 3 方代码都会使用startActivityForResult(...). 但是,您可以在其他情况下使用getCallingPackage()和。getCallingActivity()

2. 分享操作后从其他包应用程序单击返回按钮调用(“哎呀,我错过了单击分享按钮,然后返回。”)。

当用户按下 BACK 按钮时,您Activity并没有被“调用” - 它只是被恢复或重新启动。最初的调用 app/Activity/method 仍然适用 - 无法确定这是否已经发生,因为即使第一次创建an 时,也会始终调用正常的Activity生命周期方法 ( onStart()and )。onResume()Activity

3.由用户的多任务选择切换。

如果您的意思是使用“最近”应用程序视图,这同样适用于我对上面 2. 的回答。

4.由用户在开始屏幕上单击调用:这可能由 android 清单中的 MAIN 入口点知道。

在这种情况下onCreate()将被调用,尽管如果您Activity只是出于某种原因停止,它可能会根据您使用的启动模式简单地重新启动。

简而言之,我看不出你能够收集到关于你如何Activity变得活跃的任何准确信息。

于 2013-08-18T08:44:33.687 回答