如何检测我的应用程序是否被另一个人调用

时间:2018-05-21 13:43:22

标签: java android kotlin

我对我的应用程序有两个熵:从菜单和使用Intent。 在第二种情况下,我需要通过

返回一些EXTRA_OUTPUT
setResult(Activity.RESULT_OK, myIntentWithData)
finish()

所以我需要检测我的应用程序是否被另一个人调用(在这种情况下完成或继续工作)

2 个答案:

答案 0 :(得分:1)

如果使用startActivityForResult()调用了您的活动,则可以在getCallingActivity()中使用Activity方法。它将返回启动您的活动的ComponentName(如果您的活动未以startActivityForResult()方式启动,则 null )。然后,您可以获得getCallingActivity().getPackageName()getCallingActivity().getClassName()

此处有更多信息getCallingActivityhttps://stackoverflow.com/a/5336612/3569545

答案 1 :(得分:0)

使用getIntent()方法获取启动活动的意图。

然后,如果它是从应用程序菜单启动的,那么意图将有主动作。

val intent = getIntent();

if (intent.getAction() != "android.intent.action.MAIN") {
   setResult(Activity.RESULT_OK, myIntentWithData)
   finish()
}